Soft Patch Panel
 help / color / mirror / Atom feed
* [spp] [PATCH 00/20] Remove SPP VF chapter in docs
@ 2019-02-18 11:48 ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 01/20] docs: move design of SPP VF ogawa.yasufumi
                   ` (19 more replies)
  0 siblings, 20 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

Hi,

As announced in [1], `SPP VF` chapter is not needed anymore. This
series of patches is to rmeove `SPP VF` chapter and move the contents
to other chapters such as `Overview`, `Design` or so.

[1] https://mails.dpdk.org/archives/spp/2019-February/001262.html

Yasufumi Ogawa (20):
  docs: move design of SPP VF
  docs: divide getting started guide
  docs: move libvirt setup to gsg
  docs: move virsh setup section
  docs: move package installation to gsg
  docs: move descs of packet copy mode of spp_mirror
  docs: move usecase of spp_vf
  docs: update usecase of ssh with spp_vf
  docs: update how to use for virsh
  docs: update usecase of spp_mirror
  docs: revise how to use and usecases
  docs: move usecase of spp_pcap
  docs: remove SPP VF
  docs: move image of ICMP usecase of spp_vf
  docs: revise labels of image of spp_vf usecase
  docs: fix image of spp_mirror monitoring usecase
  docs: move image of design of spp_vf
  docs: move images of design of mirror and pcap
  docs: move image of overview of spp_pcap
  docs: fix in image of spp_mirror monitor usecase

 docs/guides/commands/secondary/spp_mirror.rst      |    6 +-
 docs/guides/commands/secondary/spp_vf.rst          |    4 +-
 docs/guides/design/impl/index.rst                  |   15 +
 docs/guides/design/impl/spp_mirror.rst             |  127 ++
 docs/guides/design/impl/spp_pcap.rst               |  144 ++
 docs/guides/design/impl/spp_vf.rst                 |  457 +++++
 docs/guides/design/index.rst                       |    1 +
 docs/guides/design/spp_secondary.rst               |  159 ++
 docs/guides/gsg/howto_use.rst                      |  912 +++++++++
 docs/guides/gsg/index.rst                          |   14 +
 docs/guides/gsg/install.rst                        |  307 +++
 docs/guides/gsg/performance_opt.rst                |   85 +
 docs/guides/gsg/setup.rst                          |  266 +++
 docs/guides/images/design/spp_mirror_design.svg    |  564 ++++++
 docs/guides/images/design/spp_pcap_design.svg      |  536 ++++++
 docs/guides/images/design/spp_pcap_overview.svg    |  381 ++++
 docs/guides/images/design/spp_vf_overview.svg      | 1149 ++++++++++++
 .../spp_vf/basic_usecase_mirror_nwconfig.svg       |  514 -----
 .../images/spp_vf/basic_usecase_vf_nwconfig.svg    |  752 --------
 docs/guides/images/spp_vf/spp_mirror_design.svg    |  564 ------
 docs/guides/images/spp_vf/spp_mirror_overview.svg  | 1433 --------------
 .../images/spp_vf/spp_mirror_usecase_nwconfig.svg  | 1434 --------------
 .../images/spp_vf/spp_mirror_usecase_overview.svg  |  544 ------
 docs/guides/images/spp_vf/spp_pcap_design.svg      |  536 ------
 docs/guides/images/spp_vf/spp_pcap_overview.svg    |  381 ----
 docs/guides/images/spp_vf/spp_sample_config.svg    | 1916 -------------------
 docs/guides/images/spp_vf/spp_vf_overview.svg      | 1149 ------------
 docs/guides/images/spp_vf/usecase1_nwconfig.svg    | 1916 -------------------
 docs/guides/images/spp_vf/usecase1_overview.svg    |  411 ----
 docs/guides/images/usecases/mirror_dup_nwconf.svg  |  546 ++++++
 .../images/usecases/mirror_monitor_nwconf.svg      | 1442 ++++++++++++++
 .../images/usecases/mirror_monitor_overview.svg    |  559 ++++++
 docs/guides/images/usecases/vf_cls_icmp_nwconf.svg |  752 ++++++++
 docs/guides/images/usecases/vf_ssh_nwconfig.svg    | 1978 ++++++++++++++++++++
 docs/guides/images/usecases/vf_ssh_overview.svg    |  411 ++++
 docs/guides/index.rst                              |    3 +-
 docs/guides/setup/getting_started.rst              |  420 -----
 docs/guides/setup/howto_use.rst                    |  578 ------
 docs/guides/setup/index.rst                        |   13 -
 docs/guides/setup/performance_opt.rst              |   82 -
 docs/guides/spp_vf/design.rst                      |  140 --
 docs/guides/spp_vf/explain/functions_mirror.rst    |  127 --
 docs/guides/spp_vf/explain/functions_pcap.rst      |  144 --
 docs/guides/spp_vf/explain/functions_vf.rst        |  457 -----
 docs/guides/spp_vf/explain/index.rst               |   12 -
 docs/guides/spp_vf/gsg/howto_use.rst               |  197 --
 docs/guides/spp_vf/gsg/index.rst                   |   11 -
 docs/guides/spp_vf/gsg/setup.rst                   |  403 ----
 docs/guides/spp_vf/index.rst                       |   15 -
 docs/guides/spp_vf/overview.rst                    |  107 --
 docs/guides/spp_vf/use_cases/index.rst             |   14 -
 docs/guides/spp_vf/use_cases/mirror_simple.rst     |  170 --
 docs/guides/spp_vf/use_cases/mirror_vms.rst        |  285 ---
 docs/guides/spp_vf/use_cases/pcap_simple.rst       |  235 ---
 docs/guides/spp_vf/use_cases/vf_simple.rst         |  257 ---
 docs/guides/spp_vf/use_cases/vf_ssh_login.rst      |  411 ----
 docs/guides/tools/sppc/getting_started.rst         |    4 +-
 docs/guides/use_cases/index.rst                    |    3 +
 docs/guides/use_cases/spp_mirror.rst               |  389 ++++
 docs/guides/use_cases/spp_nfv.rst                  |   14 +-
 docs/guides/use_cases/spp_pcap.rst                 |  238 +++
 docs/guides/use_cases/spp_vf.rst                   |  611 ++++++
 62 files changed, 12063 insertions(+), 15642 deletions(-)
 create mode 100644 docs/guides/design/impl/index.rst
 create mode 100644 docs/guides/design/impl/spp_mirror.rst
 create mode 100644 docs/guides/design/impl/spp_pcap.rst
 create mode 100644 docs/guides/design/impl/spp_vf.rst
 create mode 100644 docs/guides/gsg/howto_use.rst
 create mode 100644 docs/guides/gsg/index.rst
 create mode 100644 docs/guides/gsg/install.rst
 create mode 100644 docs/guides/gsg/performance_opt.rst
 create mode 100644 docs/guides/gsg/setup.rst
 create mode 100644 docs/guides/images/design/spp_mirror_design.svg
 create mode 100644 docs/guides/images/design/spp_pcap_design.svg
 create mode 100644 docs/guides/images/design/spp_pcap_overview.svg
 create mode 100644 docs/guides/images/design/spp_vf_overview.svg
 delete mode 100644 docs/guides/images/spp_vf/basic_usecase_mirror_nwconfig.svg
 delete mode 100644 docs/guides/images/spp_vf/basic_usecase_vf_nwconfig.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_mirror_design.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_mirror_overview.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_mirror_usecase_nwconfig.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_mirror_usecase_overview.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_pcap_design.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_pcap_overview.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_sample_config.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_vf_overview.svg
 delete mode 100644 docs/guides/images/spp_vf/usecase1_nwconfig.svg
 delete mode 100644 docs/guides/images/spp_vf/usecase1_overview.svg
 create mode 100644 docs/guides/images/usecases/mirror_dup_nwconf.svg
 create mode 100644 docs/guides/images/usecases/mirror_monitor_nwconf.svg
 create mode 100644 docs/guides/images/usecases/mirror_monitor_overview.svg
 create mode 100644 docs/guides/images/usecases/vf_cls_icmp_nwconf.svg
 create mode 100644 docs/guides/images/usecases/vf_ssh_nwconfig.svg
 create mode 100644 docs/guides/images/usecases/vf_ssh_overview.svg
 delete mode 100644 docs/guides/setup/getting_started.rst
 delete mode 100644 docs/guides/setup/howto_use.rst
 delete mode 100644 docs/guides/setup/index.rst
 delete mode 100644 docs/guides/setup/performance_opt.rst
 delete mode 100644 docs/guides/spp_vf/design.rst
 delete mode 100644 docs/guides/spp_vf/explain/functions_mirror.rst
 delete mode 100644 docs/guides/spp_vf/explain/functions_pcap.rst
 delete mode 100644 docs/guides/spp_vf/explain/functions_vf.rst
 delete mode 100644 docs/guides/spp_vf/explain/index.rst
 delete mode 100644 docs/guides/spp_vf/gsg/howto_use.rst
 delete mode 100644 docs/guides/spp_vf/gsg/index.rst
 delete mode 100644 docs/guides/spp_vf/gsg/setup.rst
 delete mode 100644 docs/guides/spp_vf/index.rst
 delete mode 100644 docs/guides/spp_vf/overview.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/index.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/mirror_simple.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/mirror_vms.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/pcap_simple.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/vf_simple.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/vf_ssh_login.rst
 create mode 100644 docs/guides/use_cases/spp_mirror.rst
 create mode 100644 docs/guides/use_cases/spp_pcap.rst
 create mode 100644 docs/guides/use_cases/spp_vf.rst

-- 
2.7.4

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

* [spp] [PATCH 01/20] docs: move design of SPP VF
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 02/20] docs: divide getting started guide ogawa.yasufumi
                   ` (18 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

To revise contents of docs, move design of chapter `SPP VF` to
`Design`.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/commands/secondary/spp_mirror.rst     |    6 +-
 docs/guides/commands/secondary/spp_vf.rst         |    4 +-
 docs/guides/design/spp_secondary.rst              |  159 +++
 docs/guides/images/spp_vf/spp_mirror_overview.svg | 1433 ---------------------
 docs/guides/spp_vf/design.rst                     |  140 --
 docs/guides/spp_vf/index.rst                      |    2 -
 docs/guides/spp_vf/overview.rst                   |  107 --
 7 files changed, 164 insertions(+), 1687 deletions(-)
 delete mode 100644 docs/guides/images/spp_vf/spp_mirror_overview.svg
 delete mode 100644 docs/guides/spp_vf/design.rst
 delete mode 100644 docs/guides/spp_vf/overview.rst

diff --git a/docs/guides/commands/secondary/spp_mirror.rst b/docs/guides/commands/secondary/spp_mirror.rst
index bb60f05..e92967a 100644
--- a/docs/guides/commands/secondary/spp_mirror.rst
+++ b/docs/guides/commands/secondary/spp_mirror.rst
@@ -199,8 +199,8 @@ by duplicating the packets.
     spp > mirror 2; port add vhost:1 tx mr1
 
 Adding port may cause component to start packet forwarding. Please see
-detail in
-:ref:`design spp_mirror<spp_vf_design_spp_mirror>`.
+details in
+:ref:`design spp_mirror<spp_design_spp_sec_mirror>`.
 
 Until one rx and two tx ports are registered, ``spp_mirror`` does not start
 forwarding. If it is requested to add more than one rx and two tx ports, it
@@ -230,7 +230,7 @@ Here is some examples.
 .. note::
 
   Deleting port may cause component to stop packet forwarding.
-  Please see detail in :ref:`design spp_mirror<spp_vf_design_spp_mirror>`.
+  Please see detail in :ref:`design spp_mirror<spp_design_spp_sec_mirror>`.
 
 exit
 ----
diff --git a/docs/guides/commands/secondary/spp_vf.rst b/docs/guides/commands/secondary/spp_vf.rst
index d31688e..7d63111 100644
--- a/docs/guides/commands/secondary/spp_vf.rst
+++ b/docs/guides/commands/secondary/spp_vf.rst
@@ -278,7 +278,7 @@ adds VLAN tag before sending packet outside.
 
 Adding port may cause component to start packet forwarding. Please see
 detail in
-:ref:`design spp_vf<spp_vf_design_spp_vf>`.
+:ref:`design spp_vf<spp_design_spp_sec_vf>`.
 
 Until one rx port and one tx port are added, forwarder does not start packet
 forwarding. If it is requested to add more than one rx and one tx port, it
@@ -315,7 +315,7 @@ Here is an example.
 .. note::
 
    Deleting port may cause component to stop packet forwarding.
-   Please see detail in :ref:`design spp_vf<spp_vf_design_spp_vf>`.
+   Please see detail in :ref:`design spp_vf<spp_design_spp_sec_vf>`.
 
 .. _commands_spp_vf_classifier_table:
 
diff --git a/docs/guides/design/spp_secondary.rst b/docs/guides/design/spp_secondary.rst
index a784e10..38c3d01 100644
--- a/docs/guides/design/spp_secondary.rst
+++ b/docs/guides/design/spp_secondary.rst
@@ -84,3 +84,162 @@ main thread accepts it.
    :width: 70%
 
    Main thread and worker thread in spp_nfv
+
+
+.. _spp_design_spp_sec_vf:
+
+spp_vf
+------
+
+``spp_vf`` provides a SR-IOV like network feature.
+
+``spp_vf`` forwards incoming packets to several destination VMs by referring
+MAC address like as a Virtual Function (VF) of SR-IOV.
+
+``spp_vf`` is a  multi-process and multi-thread application.
+Each of ``spp_vf`` has one manager thread and worker threads called as
+components.
+The manager thread provides a function for parsing a command and creating the
+components.
+The component threads have its own multiple components, ports and classifier
+tables including Virtual MAC address.
+There are three types of components, ``forwarder``,
+``merger`` and ``classifier``.
+
+This is an example of network configuration, in which one
+``classifier_mac``,
+one merger and four forwarders are running in ``spp_vf`` process
+for two destinations of vhost interface.
+Incoming packets from rx on host1 are sent to each of vhosts of VM
+by looking up destination MAC address in the packet.
+
+.. figure:: ../images/spp_vf/spp_vf_overview.*
+    :width: 72%
+
+    Classification of spp_vf for two VMs
+
+
+Forwarder
+^^^^^^^^^
+
+Simply forwards packets from rx to tx port.
+Forwarder does not start forwarding until when at least one rx and one tx are
+added.
+
+Merger
+^^^^^^
+
+Receives packets from multiple rx ports to aggregate
+packets and sends to a desctination port.
+Merger does not start forwarding until when at least two rx and one tx are
+added.
+
+Classifier
+^^^^^^^^^^
+
+Sends packets to multiple tx ports based on entries of
+MAC address and destination port in a classifier table.
+This component also supports VLAN tag.
+
+For VLAN addressing, classifier has other tables than defalut.
+Classifier prepares tables for each of VLAN ID and decides
+which of table is referred
+if TPID (Tag Protocol Indetifier) is included in a packet and
+equals to 0x8100 as defined in IEEE 802.1Q standard.
+Classifier does not start forwarding until when at least one rx and two tx
+are added.
+
+
+.. _spp_design_spp_sec_mirror:
+
+spp_mirror
+----------
+
+``spp_mirror`` is an implementation of
+`TaaS
+<https://docs.openstack.org/dragonflow/latest/specs/tap_as_a_service.html>`_
+as a SPP secondary process for port mirroring.
+TaaS stands for TAP as a Service.
+The keyword ``mirror`` means that it duplicates incoming packets and forwards
+to additional destination.
+
+Mirror
+^^^^^^
+
+``mirror`` component has one ``rx`` port and two ``tx`` ports. Incoming packets
+from ``rx`` port are duplicated and sent to each of ``tx`` ports.
+
+.. _figure_spp_mirror_design:
+
+.. figure:: ../images/spp_vf/spp_mirror_design.*
+    :width: 45%
+
+    Spp_mirror component
+
+In general, copying packet is time-consuming because it requires to make a new
+region on memory space. Considering to minimize impact for performance,
+``spp_mirror`` provides a choice of copying methods, ``shallowocopy`` or
+``deepcopy``.
+The difference between those methods is ``shallowocopy`` does not copy whole of
+packet data but share without header actually.
+``shallowcopy`` is to share mbuf between packets to get better performance
+than ``deepcopy``, but it should be used for read only for the packet.
+
+.. note::
+
+    ``shallowcopy`` calls ``rte_pktmbuf_clone()`` internally and
+    ``deepcopy`` create a new mbuf region.
+
+You should choose ``deepcopy`` if you use VLAN feature to make no change for
+original packet while copied packet is modified.
+
+
+.. _spp_design_spp_sec_pcap:
+
+spp_pcap
+--------
+
+SPP provides a connectivity between VM and NIC as a virtual patch panel.
+However, for more practical use, operator and/or developer needs to capture
+packets. For such use, spp_pcap provides packet capturing feature from
+specific port. It is aimed to capture up to 10Gbps packets.
+
+``spp_pcap`` is a SPP secondary process for capturing packets from specific
+``port``. :numref:`figure_spp_pcap_overview` shows an overview of use of
+``spp_pcap`` in which ``spp_pcap`` process receives packets from ``phy:0``
+for capturing.
+
+``spp_pcap`` provides packet capturing capability as a SPP secondary process.
+``spp_pcap`` has one manager thread like spp_vf, and has two types of worker
+threads unlike spp_vf.
+
+
+.. _figure_spp_pcap_overview:
+
+.. figure:: ../images/spp_vf/spp_pcap_overview.*
+   :width: 50%
+
+   Overview of spp_pcap
+
+``spp_pcap`` cosisits of main thread, ``receiver`` thread and one or more
+``wirter`` threads. As design policy, the number of ``receiver`` is fixed
+to 1 because to make it simple and it is enough for task of receiving.
+``spp_pcap`` requires at least three lcores, and assign to from master,
+``receiver`` and then the rest of ``writer`` threads respectively.
+
+Incoming packets are received by ``receiver`` thread and transferred to
+``writer`` threads via ring buffers between threads.
+
+Several ``writer`` work in parallel to store packets as files in LZ4
+format. You can capture a certain amount of heavy traffic by using much
+``writer`` threads.
+
+:numref:`figure_spp_pcap_design` shows an usecase of ``spp_pcap`` in which
+packets from ``phy:0`` are captured by using three ``writer`` threads.
+
+.. _figure_spp_pcap_design:
+
+.. figure:: ../images/spp_vf/spp_pcap_design.*
+    :width: 55%
+
+    spp_pcap internal structure
diff --git a/docs/guides/images/spp_vf/spp_mirror_overview.svg b/docs/guides/images/spp_vf/spp_mirror_overview.svg
deleted file mode 100644
index 9414fdf..0000000
--- a/docs/guides/images/spp_vf/spp_mirror_overview.svg
+++ /dev/null
@@ -1,1433 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="260mm"
-   height="185mm"
-   viewBox="0 0 921.25999 655.51182"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="spp_mirror_overview.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker19529"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path19531" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker15913"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path15915"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker10517"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path10519"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5786"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5788" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6787"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6789"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6621"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6623" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6461"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path6463"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6319"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6321"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6171"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6173" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6041"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6043" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5905"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path5907"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5663"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5665" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5545"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path5547"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5445"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5447"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5351"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5353"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5263"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5265"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5181"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5183"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5105"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5107"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5035"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5037"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4971"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4973"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4901"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4903" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4803"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4805" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4763"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4765" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4673"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4675"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4633"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4635" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4250"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789-5"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5663-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5665-2" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849-0"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851-9" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849-0-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851-9-0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6621-2"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6623-6" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5663-1"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5665-8" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787-0"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789-2"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.7"
-     inkscape:cx="526.8054"
-     inkscape:cy="384.32605"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer9"
-     showgrid="false"
-     inkscape:window-width="1685"
-     inkscape:window-height="882"
-     inkscape:window-x="77"
-     inkscape:window-y="110"
-     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="Host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-396.85038)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.16076422;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4136"
-       width="874.76562"
-       height="619.90771"
-       x="38.987026"
-       y="416.33774" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.88310295;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4218"
-       width="59.116898"
-       height="79.116898"
-       x="39.646317"
-       y="813.69037" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer12"
-     inkscape:label="Network"
-     transform="translate(0,17.716539)" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer8"
-     inkscape:label="VM"
-     transform="translate(0,17.716539)">
-    <rect
-       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.03412473;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4548"
-       width="194.82837"
-       height="138.99298"
-       x="697.48883"
-       y="286.62894"
-       ry="0" />
-    <rect
-       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.06098545;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4550"
-       width="194.80276"
-       height="138.96742"
-       x="698.70312"
-       y="454.84845" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.21666884;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4552"
-       width="68.78334"
-       height="68.78334"
-       x="697.62036"
-       y="328.59973" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.17093265;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4554"
-       width="68.829086"
-       height="68.829079"
-       x="698.90717"
-       y="496.48553" />
-    <rect
-       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.14507902;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4548-9"
-       width="239.11613"
-       height="138.85497"
-       x="653.53564"
-       y="30.367794"
-       ry="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Processes"
-     transform="translate(0,17.716539)">
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:2.11768031;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4174"
-       width="411.53824"
-       height="368.88412"
-       x="131.17735"
-       y="227.75409"
-       ry="21.405918" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.86535329;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4556"
-       width="78.088539"
-       height="63.050102"
-       x="798.37872"
-       y="332.40717"
-       ry="31.525051" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.28600001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4612"
-       width="77.14286"
-       height="54.285713"
-       x="800.28571"
-       y="513.50952"
-       ry="27.142857" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.02278769;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4556-2"
-       width="109.3597"
-       height="62.892681"
-       x="764.44849"
-       y="76.169632"
-       ry="31.446341" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.26175213;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4174-2"
-       width="332.19119"
-       height="162.23318"
-       x="130.66011"
-       y="46.107227"
-       ry="15.189577" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Threads"
-     transform="translate(0,17.716539)">
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534"
-       width="128.91641"
-       height="48.916386"
-       x="144.74155"
-       y="364.53329"
-       ry="24.458193" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.18673563;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4536"
-       width="128.81329"
-       height="48.813263"
-       x="140.73215"
-       y="463.6001"
-       ry="24.406631" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.11390722;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4538"
-       width="128.88611"
-       height="48.921562"
-       x="400.50293"
-       y="316.24387"
-       ry="22.773815" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.40811193;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4540"
-       width="128.5798"
-       height="48.638973"
-       x="400.65607"
-       y="387.75711"
-       ry="24.319487" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.19797981;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4542"
-       width="128.79857"
-       height="48.840809"
-       x="400.54669"
-       y="459.0282"
-       ry="24.420404" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.163082;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4544"
-       width="128.83492"
-       height="48.874329"
-       x="400.5285"
-       y="530.38336"
-       ry="24.437164" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6"
-       width="128.91644"
-       height="48.916393"
-       x="170.68469"
-       y="116.19418"
-       ry="24.458197" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.11390722;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4538-1"
-       width="128.88614"
-       height="48.92157"
-       x="400.02924"
-       y="242.73033"
-       ry="22.773819" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer7"
-     inkscape:label="DPDK-Resources"
-     transform="translate(0,17.716539)">
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558"
-       cx="331.75546"
-       cy="341.86963"
-       rx="40.042084"
-       ry="19.542076" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.38332129;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4585"
-       cx="331.75562"
-       cy="413.12515"
-       rx="39.808346"
-       ry="19.308342" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.34181738;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4587"
-       cx="331.75562"
-       cy="484.38062"
-       rx="39.829098"
-       ry="19.329096" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.18107522;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4589"
-       cx="331.75562"
-       cy="555.63617"
-       rx="39.90947"
-       ry="19.409466" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.028548;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4591"
-       cx="615.28491"
-       cy="342.29538"
-       rx="43.985737"
-       ry="24.485731" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91791457;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4593"
-       cx="615.85687"
-       cy="487.43823"
-       rx="44.04105"
-       ry="24.541048" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558-3"
-       cx="368.85724"
-       cy="110.08095"
-       rx="40.042091"
-       ry="19.54208" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558-3-6"
-       cx="368.00006"
-       cy="172.9381"
-       rx="40.042099"
-       ry="19.542084" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.028548;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4591-3"
-       cx="616.00012"
-       cy="399.50955"
-       rx="43.985744"
-       ry="24.485735" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.028548;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4591-3-6"
-       cx="616.00012"
-       cy="547.50958"
-       rx="43.985752"
-       ry="24.485739" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer11"
-     inkscape:label="Path"
-     transform="translate(0,17.716539)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4673)"
-       d="m 97.999997,414.65237 47.428573,-20"
-       id="path4623"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4633)"
-       d="M 139.71429,486.93809 97.999997,460.36666"
-       id="path4625"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4849)"
-       d="m 266.85714,373.2238 30,-22.85714"
-       id="path4713"
-       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(#marker4803)"
-       d="m 269.71429,398.93808 22.85714,11.42858"
-       id="path4715"
-       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(#marker5351)"
-       d="m 371.71429,413.2238 28.57142,0"
-       id="path4719"
-       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(#marker5263)"
-       d="m 398.85714,483.2238 -27.14285,0"
-       id="path4721"
-       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(#marker5181)"
-       d="m 402.28571,553.50951 -30,1.42858"
-       id="path4723"
-       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(#marker4763)"
-       d="m 291.14286,484.65237 -22.85715,1.42857"
-       id="path4725"
-       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(#marker4901)"
-       d="m 291.14286,551.79523 -30,-42.85714"
-       id="path4727"
-       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(#marker5105)"
-       d="m 529.42857,341.50951 38.85714,-0.28571"
-       id="path4729"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4971)"
-       d="m 524.57143,424.65237 58,45.99999"
-       id="path4731"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5035)"
-       d="m 578.57143,411.79524 -54.85714,54.2857"
-       id="path4733"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5545)"
-       d="M 571.14286,548.08094 530,548.93809"
-       id="path4735"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5663)"
-       d="m 661.14286,342.65237 36.28571,0"
-       id="path4737"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6621)"
-       d="m 695.42857,377.50951 -34.28571,18"
-       id="path4739"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6319)"
-       d="m 659.71429,486.08094 37.71428,26"
-       id="path4741"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6461)"
-       d="m 699.42857,547.79523 -39.14286,0"
-       id="path4743"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5787)"
-       d="m 766,348.08094 31.42857,1.42857"
-       id="path4745"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5905)"
-       d="m 799.42857,379.2238 -31.42857,0"
-       id="path4747"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6041)"
-       d="m 767.42857,523.50951 32.85714,0"
-       id="path4749"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6171)"
-       d="m 803.71428,553.50952 -34.28571,-10e-6"
-       id="path4751"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5663-6)"
-       d="m 603.13388,100.33612 46.28571,0"
-       id="path4737-0"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5786)"
-       d="M 332.46712,323.19106 C 333.95667,200.23262 225.6988,294.05727 225.69551,167.62756"
-       id="path5778"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4849-0)"
-       d="m 296.92402,150.75332 33.13199,13.58958"
-       id="path4713-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4849-0-6)"
-       d="m 298.34489,131.32767 31.13199,-14.41043"
-       id="path4713-3-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10517)"
-       d="m 369.80215,191.89153 c -0.4245,62.70565 -6.10872,86.69137 35.37565,131.34014"
-       id="path10509"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker15913)"
-       d="m 525.36565,254.48038 c 23.79385,-23.59875 35.80283,-72.86224 34.38579,-122.10663"
-       id="path15905"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19529)"
-       d="m 406.18795,118.1707 c 34.98079,25.29124 -1.59394,83.85895 33.51778,124.22846"
-       id="path20649"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5663-1)"
-       d="m -0.14272304,417.93813 38.28571304,0"
-       id="path4737-7"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6621-2)"
-       d="m 38.14299,458.79528 -36.2857117,0"
-       id="path4739-92"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5787-0)"
-       d="m 722.46751,104.52397 41.42857,-0.57143"
-       id="path4745-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Label-Host"
-     transform="translate(0,-396.85038)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="70.455467"
-       y="448.5798"
-       id="text4160"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4162"
-         x="70.455467"
-         y="448.5798">host</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="49.94928"
-       y="862.11847"
-       id="text4220"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4222"
-         x="49.94928"
-         y="862.11847">NIC</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer10"
-     inkscape:label="Label-VM"
-     transform="translate(0,17.716539)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="712.57147"
-       y="370.65237"
-       id="text4596"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4598"
-         x="712.57147"
-         y="370.65237">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="710"
-       y="539.50952"
-       id="text4600"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4602"
-         x="710"
-         y="539.50952">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="706.85712"
-       y="482.36667"
-       id="text4604"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4606"
-         x="706.85712"
-         y="482.36667">VM2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="705.42859"
-       y="314.93811"
-       id="text4608"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4610"
-         x="705.42859"
-         y="314.93811">VM1</tspan></text>
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.21666873;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4552-1"
-       width="68.783356"
-       height="68.78334"
-       x="653.61139"
-       y="71.712051" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.12711251;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4591-7"
-       cx="559.27594"
-       cy="100.97913"
-       rx="43.936462"
-       ry="29.436449" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="668.5625"
-       y="114.33612"
-       id="text4596-0"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4598-6"
-         x="668.5625"
-         y="114.33612">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="661.41962"
-       y="58.621857"
-       id="text4608-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4610-6"
-         x="661.41962"
-         y="58.621857">VM3</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-Processes"
-     transform="translate(0,17.716539)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="146.94424"
-       y="260.51596"
-       id="text4208"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4210"
-         x="146.94424"
-         y="260.51596">spp_vf</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="812.28571"
-       y="369.50952"
-       id="text4614"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4616"
-         x="812.28571"
-         y="369.50952">App1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="812.28571"
-       y="546.08093"
-       id="text4618"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4620"
-         x="812.28571"
-         y="546.08093">App2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="778.27673"
-       y="113.19327"
-       id="text4614-1"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4616-8"
-         x="778.27673"
-         y="113.19327">Monitor</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="152.66794"
-       y="78.74424"
-       id="text4208-0"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4210-2"
-         x="152.66794"
-         y="78.74424">spp_mirror</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Label-Threads"
-     transform="translate(0,17.716539)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="406.6297"
-       y="348.63785"
-       id="text4184"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4186"
-         x="406.6297"
-         y="348.63785">forwarder0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="404.60938"
-       y="421.36884"
-       id="text4188"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4190"
-         x="404.60938"
-         y="421.36884">forwarder1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="406.6297"
-       y="494.09982"
-       id="text4192"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4194"
-         x="406.6297"
-         y="494.09982">forwarder2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="408.64984"
-       y="562.79022"
-       id="text4196"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4198"
-         x="408.64984"
-         y="562.79022">forwarde3</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="160.98486"
-       y="494.12006"
-       id="text4200"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4202"
-         x="160.98486"
-         y="494.12006">merger0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="162.96454"
-       y="397.12512"
-       id="text4204"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4206"
-         x="162.96454"
-         y="397.12512">classifier</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="202.85202"
-       y="147.39758"
-       id="text4204-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4206-9"
-         x="202.85202"
-         y="147.39758">mirror</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="421.7359"
-       y="274.54684"
-       id="text4200-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4202-7"
-         x="421.7359"
-         y="274.54684">merger1</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer9"
-     inkscape:label="Label-Resources"
-     transform="translate(0,17.716539)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="299.62445"
-       y="490.98001"
-       id="text4561"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4563"
-         x="299.62445"
-         y="490.98001">ring:2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="300.80792"
-       y="418.14172"
-       id="text4565"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4567"
-         x="300.80792"
-         y="418.14172">ring:1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="301.57806"
-       y="561.12506"
-       id="text4569"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4571"
-         x="301.57806"
-         y="561.12506">ring:3</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="300.16257"
-       y="348.63779"
-       id="text4573"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575"
-         x="300.16257"
-         y="348.63779">ring:0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="576.16406"
-       y="348.16635"
-       id="text4577"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4579"
-         x="576.16406"
-         y="348.16635">vhost:0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="576.25977"
-       y="406.18378"
-       id="text4581"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4583"
-         x="576.25977"
-         y="406.18378">vhost:1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="520.15509"
-       y="107.8501"
-       id="text4577-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4579-9"
-         x="520.15509"
-         y="107.8501">vhost:4</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="337.0242"
-       y="180.4696"
-       id="text4573-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575-5"
-         x="337.0242"
-         y="180.4696">ring:5</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="338.73846"
-       y="117.04106"
-       id="text4573-7-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575-5-5"
-         x="338.73846"
-         y="117.04106">ring:4</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="576.40454"
-       y="494.16687"
-       id="text4581-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4583-5"
-         x="576.40454"
-         y="494.16687">vhost:2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="578.40454"
-       y="556.16687"
-       id="text4581-7-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4583-5-5"
-         x="578.40454"
-         y="556.16687">vhost:3</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/spp_vf/design.rst b/docs/guides/spp_vf/design.rst
deleted file mode 100644
index b1e864a..0000000
--- a/docs/guides/spp_vf/design.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-.. _spp_vf_design:
-
-Design
-======
-
-.. _spp_vf_design_port:
-
-Ports
------
-
-Both of ``spp_vf`` and ``spp_mirror`` support three types of port,
-``phy``, ``ring`` and ``vhost``.
-``phy`` port is used to retrieve packets from specific physical NIC or sent to.
-``ring`` is basically used to connect a process or a thread to make a network
-path between them.
-``vhost`` is used to forward packets from a VM or sent to.
-
-
-.. _spp_vf_design_spp_vf:
-
-spp_vf
-------
-
-``spp_vf`` is a kind of secondary process and consists of several
-threads called component.
-There are three types of components, ``forwarder``,
-``merger`` and ``classifier``.
-
-.. figure:: ../images/spp_vf/spp_vf_overview.*
-    :width: 75%
-
-    SPP VF components
-
-Forwarder
-^^^^^^^^^
-
-Simply forwards packets from rx to tx port.
-Forwarder does not start forwarding until when at least one rx and one tx are
-added.
-
-Merger
-^^^^^^
-
-Receives packets from multiple rx ports to aggregate
-packets and sends to a desctination port.
-Merger does not start forwarding until when at least two rx and one tx are
-added.
-
-Classifier
-^^^^^^^^^^
-
-Sends packets to multiple tx ports based on entries of
-MAC address and destination port in a classifier table.
-This component also supports VLAN tag.
-
-For VLAN addressing, classifier has other tables than defalut.
-Classifier prepares tables for each of VLAN ID and decides
-which of table is referred
-if TPID (Tag Protocol Indetifier) is included in a packet and
-equals to 0x8100 as defined in IEEE 802.1Q standard.
-Classifier does not start forwarding until when at least one rx and two tx are
-added.
-
-
-.. _spp_vf_design_spp_mirror:
-
-spp_mirror
-----------
-
-``spp_mirror`` is another kind of secondary process. The keyword ``mirror``
-means that it duplicates incoming packets and forwards to additional
-destination.
-It supports only one type of component called ``mirror`` for duplicating.
-In :numref:`figure_spp_mirror_design`, incoming packets are duplicated with
-``mirror`` component and sent to original and additional destinations.
-
-.. _figure_spp_mirror_design:
-
-.. figure:: ../images/spp_vf/spp_mirror_design.*
-    :width: 45%
-
-    Spp_mirror component
-
-Mirror
-^^^^^^
-
-``mirror`` component has one ``rx`` port and two ``tx`` ports. Incoming packets
-from ``rx`` port are duplicated and sent to each of ``tx`` ports.
-
-In general, copying packet is time-consuming because it requires to make a new
-region on memory space. Considering to minimize impact for performance,
-``spp_mirror`` provides a choice of copying methods, ``shallowocopy`` or
-``deepcopy``.
-The difference between those methods is ``shallowocopy`` does not copy whole of
-packet data but share without header actually.
-``shallowcopy`` is to share mbuf between packets to get better performance
-than ``deepcopy``, but it should be used for read only for the packet.
-
-.. note::
-
-    ``shallowcopy`` calls ``rte_pktmbuf_clone()`` internally and
-    ``deepcopy`` create a new mbuf region.
-
-You should choose ``deepcopy`` if you use VLAN feature to make no change for
-original packet while copied packet is modified.
-
-
-.. _spp_vf_design_spp_pcap:
-
-spp_pcap
---------
-
-``spp_pcap`` cosisits of main thread, ``receiver`` thread and one or more
-``wirter`` threads. As design policy, the number of ``receiver`` is fixed
-to 1 because to make it simple and it is enough for task of receiving.
-``spp_pcap`` requires at least three lcores, and assign to from master,
-``receiver`` and then the rest of ``writer`` threads respectively.
-
-Incoming packets are received by ``receiver`` thread and transferred to
-``writer`` threads via ring buffers between threads.
-
-Several ``writer`` work in parallel to store packets as files in LZ4
-format. You can capture a certain amount of heavy traffic by using much
-``writer`` threads.
-
-:numref:`figure_spp_pcap_design` shows an usecase of ``spp_pcap`` in which
-packets from ``phy:0`` are captured by using three ``writer`` threads.
-
-.. _figure_spp_pcap_design:
-
-.. figure:: ../images/spp_vf/spp_pcap_design.*
-    :width: 55%
-
-    spp_pcap internal structure
-
-.. _spp_pcap_design_output_file_format:
-
diff --git a/docs/guides/spp_vf/index.rst b/docs/guides/spp_vf/index.rst
index c0ce125..e5b79ba 100644
--- a/docs/guides/spp_vf/index.rst
+++ b/docs/guides/spp_vf/index.rst
@@ -8,8 +8,6 @@ SPP VF
    :maxdepth: 2
    :numbered:
 
-   overview
-   design
    gsg/index
    use_cases/index
    explain/index
diff --git a/docs/guides/spp_vf/overview.rst b/docs/guides/spp_vf/overview.rst
deleted file mode 100644
index adaced6..0000000
--- a/docs/guides/spp_vf/overview.rst
+++ /dev/null
@@ -1,107 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
-
-.. _spp_vf_overview:
-
-Overview
-========
-
-This section describes an overview of SPP's extensions, ``spp_vf`` , ``spp_mirror`` and ``spp_pcap``.
-SPP provides a connectivity between DPDK processes as a virtual patch panel.
-However, It is not sufficient considering more practical usecases.
-For instance, you might need a classification for incoming packets if you have
-multiple processes as destinations. You might also need to duplicate packets
-for monitoring or inspection.
-
-``spp_vf`` is a SPP secondary process for forwarding packets to multiple
-destination ports with a MAC address classification. It is also supported to
-merge from several source ports to aggregate packets to a destination port.
-
-``spp_mirror`` is an another kind of secondary process to duplicate incoming
-packets. This feature is intended to use as a
-`TaaS
-<https://docs.openstack.org/dragonflow/latest/specs/tap_as_a_service.html>`_
-feature for port mirroring introduced in OpenStack.
-
-``spp_pcap`` is an another kind of secondary process to capture incoming packets. This feature is intended to capture up to 10Gbps packets.
-
-
-spp_vf
-------
-
-``spp_vf`` provides a SR-IOV like network feature.
-
-``spp_vf`` forwards incoming packets to several destination VMs by referring
-MAC address like as a Virtual Function (VF) of SR-IOV.
-
-``spp_vf`` is a  multi-process and multi-thread application.
-Each of ``spp_vf`` has one manager thread and worker threads called as
-components.
-The manager thread provides a function for parsing a command and creating the
-components.
-The component threads have its own multiple components, ports and classifier
-tables including Virtual MAC address.
-
-This is an example of network configuration, in which one
-``classifier_mac``,
-one merger and four forwarders are running in ``spp_vf`` process
-for two destinations of vhost interface.
-Incoming packets from rx on host1 are sent to each of vhosts of VM
-by looking up destination MAC address in the packet.
-
-.. figure:: ../images/spp_vf/spp_vf_overview.*
-    :width: 70%
-
-    Overview of spp_vf
-
-
-spp_mirror
-----------
-
-``spp_mirror`` is an implementation of
-`TaaS
-<https://docs.openstack.org/dragonflow/latest/specs/tap_as_a_service.html>`_
-as a SPP secondary process for port mirroring.
-TaaS stands for TAP as a Service.
-
-``spp_mirror`` consists of one manager thread and worker threads as similar to
-``spp_vf``, but just one worker role for mirroring.
-:numref:`figure_spp_mirror_overview` shows an overview of use of ``spp_mirror``
-in which ``spp_mirror`` process receives packets from ``ring:0`` in ``spp_vf``
-for duplicating the packets for monitoring.
-Worker thread ``mirror`` has two of tx rings for forwaring the packets to the
-destination and a monitor application running on VM3.
-
-.. _figure_spp_mirror_overview:
-
-.. figure:: ../images/spp_vf/spp_mirror_overview.*
-   :width: 70%
-
-   Overview of spp_mirror
-
-
-spp_pcap
---------
-
-This section describes an overview of SPP's extensions, ``spp_pcap``.
-SPP provides a connectivity between VM and NIC as a virtual patch panel.
-However, for more practical use, operator and/or developer needs to capture
-packets. For such use, spp_pcap provides packet capturing feature from
-specific port. It is aimed to capture up to 10Gbps packets.
-
-``spp_pcap`` is a SPP secondary process for capturing packets from specific
-``port``. :numref:`figure_spp_pcap_overview` shows an overview of use of
-``spp_pcap`` in which ``spp_pcap`` process receives packets from ``phy:0``
-for capturing.
-
-``spp_pcap`` provides packet capturing capability as a SPP secondary process.
-``spp_pcap`` has one manager thread like spp_vf, and has two types of worker
-threads unlike spp_vf.
-
-
-.. _figure_spp_pcap_overview:
-
-.. figure:: ../images/spp_vf/spp_pcap_overview.*
-   :width: 50%
-
-   Overview of spp_pcap
-- 
2.7.4

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

* [spp] [PATCH 02/20] docs: divide getting started guide
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 01/20] docs: move design of SPP VF ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 03/20] docs: move libvirt setup to gsg ogawa.yasufumi
                   ` (17 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to divide `Getting Started` into two parts because this
chapter could be large as hard to maintain after sections of SPP VF are
moved.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/gsg/howto_use.rst              | 578 +++++++++++++++++++++++++++++
 docs/guides/gsg/index.rst                  |  14 +
 docs/guides/gsg/install.rst                | 282 ++++++++++++++
 docs/guides/gsg/performance_opt.rst        |  82 ++++
 docs/guides/gsg/setup.rst                  | 152 ++++++++
 docs/guides/index.rst                      |   2 +-
 docs/guides/setup/getting_started.rst      | 420 ---------------------
 docs/guides/setup/howto_use.rst            | 578 -----------------------------
 docs/guides/setup/index.rst                |  13 -
 docs/guides/setup/performance_opt.rst      |  82 ----
 docs/guides/tools/sppc/getting_started.rst |   4 +-
 docs/guides/use_cases/spp_nfv.rst          |   2 +-
 12 files changed, 1112 insertions(+), 1097 deletions(-)
 create mode 100644 docs/guides/gsg/howto_use.rst
 create mode 100644 docs/guides/gsg/index.rst
 create mode 100644 docs/guides/gsg/install.rst
 create mode 100644 docs/guides/gsg/performance_opt.rst
 create mode 100644 docs/guides/gsg/setup.rst
 delete mode 100644 docs/guides/setup/getting_started.rst
 delete mode 100644 docs/guides/setup/howto_use.rst
 delete mode 100644 docs/guides/setup/index.rst
 delete mode 100644 docs/guides/setup/performance_opt.rst

diff --git a/docs/guides/gsg/howto_use.rst b/docs/guides/gsg/howto_use.rst
new file mode 100644
index 0000000..cc3dd9b
--- /dev/null
+++ b/docs/guides/gsg/howto_use.rst
@@ -0,0 +1,578 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2014 Intel Corporation
+
+.. _spp_setup_howto_use:
+
+How to Use
+==========
+
+As described in :ref:`Design<spp_overview_design>`, SPP consists of
+primary process for managing resources, secondary processes for
+forwarding packet, and SPP controller to accept user commands and
+send it to SPP processes.
+
+You should keep in mind the order of launching processes.
+Primary process must be launched before secondary processes.
+``spp-ctl`` need to be launched before SPP CLI, but no need to be launched
+before other processes. SPP CLI is launched from ``spp.py``.
+If ``spp-ctl`` is not running after primary and
+secondary processes are launched, processes wait ``spp-ctl`` is launched.
+
+In general, ``spp-ctl`` should be launched first, then SPP CLI and
+``spp_primary`` in each of terminals without running as background process.
+After ``spp_primary``, you launch secondary processes for your usage.
+If you just patch two DPDK applications on host, it is enough to use one
+``spp_nfv``, or use ``spp_vf`` if you need to classify packets.
+How to use of these secondary processes is described in next chapters.
+
+
+SPP Controller
+--------------
+
+SPP Controller consists of ``spp-ctl`` and SPP CLI.
+
+spp-ctl
+~~~~~~~
+
+``spp-ctl`` is a HTTP server for REST APIs for managing SPP
+processes. In default, it is accessed with URL ``http://127.0.0.1:7777``
+or ``http://localhost:7777``.
+``spp-ctl`` shows no messages at first after launched, but shows
+log messages for events such as receiving a request or terminating
+a process.
+
+.. code-block:: console
+
+    # terminal 1
+    $ cd /path/to/spp
+    $ python3 src/spp-ctl/spp-ctl
+
+Notice that ``spp-ctl`` is implemented in ``python3`` and cannot be
+launched with ``python2``.
+
+It has a option ``-b`` for binding address explicitly to be accessed
+from other than default, ``127.0.0.1`` or ``localhost``.
+If you deploy SPP on multiple nodes, you might need to use ``-b`` option
+it to be accessed from other processes running on other than local node.
+
+.. code-block:: console
+
+    # launch with URL http://192.168.1.100:7777
+    $ python3 src/spp-ctl/spp-ctl -b 192.168.1.100
+
+``spp-ctl`` is the most important process in SPP. For some usecases,
+you might better to manage this process with ``systemd``.
+Here is a simple example of service file for systemd.
+
+.. code-block:: none
+
+    [Unit]
+    Description = SPP Controller
+
+    [Service]
+    ExecStart = /usr/bin/python3 /path/to/spp/src/spp-ctl/spp-ctl
+    User = root
+
+All of options can be referred with help option ``-h``.
+
+.. code-block:: console
+
+    python3 ./src/spp-ctl/spp-ctl -h
+    usage: spp-ctl [-h] [-b BIND_ADDR] [-p PRI_PORT] [-s SEC_PORT] [-a API_PORT]
+
+    SPP Controller
+
+    optional arguments:
+      -h, --help            show this help message and exit
+      -b BIND_ADDR, --bind-addr BIND_ADDR
+                            bind address, default=localhost
+      -p PRI_PORT           primary port, default=5555
+      -s SEC_PORT           secondary port, default=6666
+      -a API_PORT           web api port, default=7777
+
+.. _spp_setup_howto_use_spp_cli:
+
+SPP CLI
+~~~~~~~
+
+If ``spp-ctl`` is launched, go to the next terminal and launch SPP CLI.
+It supports both of Python 2 and 3, so use ``python`` in this case.
+
+.. code-block:: console
+
+    # terminal 2
+    $ cd /path/to/spp
+    $ python src/spp.py
+    Welcome to the spp.   Type help or ? to list commands.
+
+    spp >
+
+If you launched ``spp-ctl`` with ``-b`` option, you also need to use the same
+option for ``spp.py``, or failed to connect and to launch.
+
+.. code-block:: console
+
+    # terminal 2
+    # bind to spp-ctl on http://192.168.1.100:7777
+    $ python src/spp.py -b 192.168.1.100
+    Welcome to the spp.   Type help or ? to list commands.
+
+    spp >
+
+One of the typical usecase of this option is to deploy multiple SPP nodes.
+:numref:`figure_spp_howto_multi_spp` is an exmaple of multiple nodes case.
+There are three nodes on each of which ``spp-ctl`` is running for accepting
+requests for SPP. These ``spp-ctl`` processes are controlled from
+``spp.py`` on host1 and all of paths are configured across the nodes.
+It is also able to be configured between hosts by changing
+soure or destination of phy ports.
+
+.. _figure_spp_howto_multi_spp:
+
+.. figure:: ../images/setup/howto_use/spp_howto_multi_spp.*
+   :width: 80%
+
+   Multiple SPP nodes
+
+Launch SPP CLI with three entries of binding addresses with ``-b`` option
+for specifying ``spp-ctl``.
+
+.. code-block:: console
+
+    # Launch SPP CLI with three nodes
+    $ python src/spp.py -b 192.168.11.101 \
+        -b 192.168.11.102 \
+        -b 192.168.11.103 \
+
+You can also add nodes after SPP CLI is launched.
+
+.. code-block:: console
+
+    # Launch SPP CLI with one node
+    $ python src/spp.py -b 192.168.11.101
+    Welcome to the SPP CLI. Type `help` or `?` to list commands.
+
+    # Add the rest of nodes after
+    spp > server add 192.168.11.102
+    Registered spp-ctl "192.168.11.102:7777".
+    spp > server add 192.168.11.103
+    Registered spp-ctl "192.168.11.103:7777".
+
+You find the host under the management of SPP CLI and switch with
+``server`` command.
+
+.. code-block:: none
+
+    spp > server list
+      1: 192.168.1.101:7777 *
+      2: 192.168.1.102:7777
+      3: 192.168.1.103:7777
+
+To change the server, add an index number after ``server``.
+
+.. code-block:: none
+
+    # Launch SPP CLI
+    spp > server 3
+    Switch spp-ctl to "3: 192.168.1.103:7777".
+
+All of options can be referred with help option ``-h``.
+
+.. code-block:: console
+
+    $ python src/spp.py -h
+    usage: spp.py [-h] [-b BIND_ADDR] [-a API_PORT]
+
+    SPP Controller
+
+    optional arguments:
+      -h, --help            show this help message and exit
+      -b BIND_ADDR, --bind-addr BIND_ADDR
+                            bind address, default=127.0.0.1
+      -a API_PORT, --api-port API_PORT
+                        bind address, default=777
+
+All of SPP CLI commands are described in :doc:`../../commands/index`.
+
+
+Default Configuration
+^^^^^^^^^^^^^^^^^^^^^
+
+SPP CLI imports several params from configuration file while launching.
+Some of behaviours of SPP CLI depends on the params.
+The default configuration is defined in
+``src/controller/config/default.yml``.
+You can change this params by editing the config file, or from ``config``
+command after SPP CLI is launched.
+
+All of config params are referred by ``config`` command.
+
+.. code-block:: none
+
+    # show list of config
+    spp > config
+    - max_secondary: "16"       # The maximum number of secondary processes
+    - sec_nfv_nof_lcores: "1"   # Default num of lcores for workers of spp_nfv
+    ....
+
+To change the config, set a value for the param.
+Here is an example for changing command prompt.
+
+.. code-block:: none
+
+    # set prompt to "$ spp "
+    spp > config prompt "$ spp "
+    Set prompt: "$ spp "
+    $ spp
+
+
+SPP Primary
+-----------
+
+SPP primary is a resource manager and has a responsibility for
+initializing EAL for secondary processes. It should be launched before
+secondary.
+
+To launch SPP primary, run ``spp_primary`` with specific options.
+
+.. code-block:: console
+
+    # terminal 3
+    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+        -l 1 -n 4 \
+        --socket-mem 512,512 \
+        --huge-dir /dev/hugepages \
+        --proc-type primary \
+        --base-virtaddr 0x100000000
+        -- \
+        -p 0x03 \
+        -n 10 \
+        -s 192.168.1.100:5555
+
+SPP primary takes EAL options and application specific options.
+
+Core list option ``-l`` is for assigining cores and SPP primary requires just
+one core. You can use core mask option ``-c`` instead of ``-l``.
+You can use ``-m 1024`` for memory reservation instead of
+``--socket-mem 1024,0`` if you use single NUMA node. In this case, 512 MB is
+reserved on each of nodes.
+
+.. note::
+
+   If you use DPDK v18.08 or before,
+   you should consider give ``--base-virtaddr`` with 4 GiB or higher value
+   because a secondary process is accidentally failed to mmap while init
+   memory. The reason of the failure is secondary process tries to reserve
+   the region which is already used by some of thread of primary.
+
+   .. code-block:: console
+
+      # Failed to secondary
+      EAL: Could not mmap 17179869184 ... - please use '--base-virtaddr' option
+
+   ``--base-virtaddr`` is to decide base address explicitly to avoid this
+   overlapping. 4 GiB ``0x100000000`` is enough for the purpose.
+
+   If you use DPDK v18.11 or later, ``--base-virtaddr 0x100000000`` is enabled
+   in default. You need to use this option only for changing the default value.
+
+
+In general, one lcore is enough for ``spp_primary``. If you give two or
+more, it uses second lcore to display statistics periodically and does not
+use others.
+
+.. note::
+
+    Anyway, you can get statistics in SPP CLI with ``pri; status`` command
+    actually even if you give only one core.
+
+Primary process sets up physical ports of given port mask with ``-p`` option
+and ring ports of the number of ``-n`` option. Ports of  ``-p`` option is for
+accepting incomming packets and ``-n`` option is for inter-process packet
+forwarding. You can also add ports initialized with ``--vdev`` option to
+physical ports. However, ports added with ``--vdev`` cannot referred from
+secondary processes.
+
+.. code-block:: console
+
+    # terminal 3
+    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+        -l 1 -n 4 \
+        --socket-mem 512,512 \
+        --huge-dir=/dev/hugepages \
+        --vdev eth_vhost1,iface=/tmp/sock1  # used as 1st phy port
+        --vdev eth_vhost2,iface=/tmp/sock2  # used as 2nd phy port
+        --proc-type=primary \
+        --base-virtaddr 0x100000000
+        -- \
+        -p 0x03 \
+        -n 10 \
+        -s 192.168.1.100:5555
+
+- EAL options:
+
+  - -l: core list
+  - --socket-mem: Memory size on each of NUMA nodes.
+  - --huge-dir: Path of hugepage dir.
+  - --proc-type: Process type.
+  - --base-virtaddr: Specify base virtual address.
+
+- Application options:
+
+  - -p: Port mask.
+  - -n: Number of ring PMD.
+  - -s: IP address of controller and port prepared for primary.
+
+
+SPP Secondary
+-------------
+
+Secondary process behaves as a client of primary process and a worker
+for doing tasks for packet processing. There are several kinds of secondary
+process, for example, simply forwarding between ports or classsifying
+by referring packet header.
+
+This section describes about the simplest ``spp_nfv`` which simply forward
+packets similar to ``l2fwd``.
+
+
+Launch spp_nfv on Host
+~~~~~~~~~~~~~~~~~~~~~~
+
+Run ``spp_nfv`` with options.
+
+.. code-block:: console
+
+    # terminal 4
+    $ cd /path/to/spp
+    $ sudo ./src/nfv/x86_64-native-linuxapp-gcc/spp_nfv \
+        -l 2-3 -n 4 \
+        --proc-type=secondary \
+        -- \
+        -n 1 \
+        -s 192.168.1.100:6666
+
+- EAL options:
+
+  - -l: core list (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, it
+is failed.
+
+
+Launch from SPP CLI
+~~~~~~~~~~~~~~~~~~~
+
+You can launch SPP secondary processes from SPP CLI wihtout openning
+other terminals. ``pri; launch`` command is for any of secondary processes
+with specific options. It takes secondary type, ID and options of EAL
+and application itself as similar to launching from terminal.
+Here is an example of launching ``spp_nfv``. You notice that there is no
+``--proc-type secondary`` which should be required for secondary.
+It is added to the options by SPP CLI before launching the process.
+
+.. code-block:: none
+
+    # terminal 2
+    # launch spp_nfv with sec ID 2
+    spp > pri; launch nfv 2 -l 1,2 -m 512 -- -n 2 -s 192.168.1.100:6666
+    Send request to launch nfv:2.
+
+After running this command, you can find ``nfv:2`` is launched
+successfully.
+
+.. code-block:: none
+
+    # terminal 2
+    spp > status
+    - spp-ctl:
+      - address: 192.168.1.100:7777
+    - primary:
+      - status: running
+    - secondary:
+      - processes:
+        1: nfv:2
+
+Instead of displaying log messages in terminal, it outputs the messages
+in a log file. All of log files of secondary processes launched with
+``pri`` are located in ``log/`` directory under the project root.
+The name of log file is found ``log/spp_nfv-2.log``.
+
+.. code-block:: console
+
+    # terminal 5
+    $ tail -f log/spp_nfv-2.log
+    SPP_NFV: Used lcores: 1 2
+    SPP_NFV: entering main loop on lcore 2
+    SPP_NFV: My ID 2 start handling message
+    SPP_NFV: [Press Ctrl-C to quit ...]
+    SPP_NFV: Creating socket...
+    SPP_NFV: Trying to connect ... socket 24
+    SPP_NFV: Connected
+    SPP_NFV: Received string: _get_client_id
+    SPP_NFV: token 0 = _get_client_id
+    SPP_NFV: To Server: {"results":[{"result":"success"}],"client_id":2, ...
+
+
+Launch SPP 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.
+Run ``add`` command with resource UID ``vhost:0`` to create socket file.
+
+.. code-block:: none
+
+    # terminal 2
+    spp > nfv 1; add vhost:0
+
+In this example, it creates socket file with index 0 from ``spp_nfv`` 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. You cannot use this example as it is because some options are
+depend on your environment.
+You should specify disk image with ``-hda``, sixth option in this
+example, and ``qemu-ifup`` script for assigning an IP address for the VM
+to be able to access as 12th line.
+
+.. code-block:: console
+
+    # terminal 5
+    $ 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 \
+        -device virtio-net-pci,netdev=net1,mac=00:AD:BE:B4:11:00 \
+        -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::
+
+    In general, you need to prepare several qemu images for launcing
+    several VMs, but installing DPDK and SPP for several images is bother
+    and time consuming.
+
+    You can shortcut this tasks by creating a template image and copy it
+    to the VMs. It is just one time for installing for template.
+
+After VM is booted, you install DPDK and SPP in the VM as in the host.
+IP address of the VM is assigned while it is created and you can find
+the address in a file generated from libvirt if you use Ubuntu.
+
+.. code-block:: console
+
+    # terminal 5
+    $ cat /var/lib/libvirt/dnsmasq/virbr0.status
+    [
+        {
+            "ip-address": "192.168.122.100",
+            ...
+
+    # Login VM, install DPDK and SPP
+    $ ssh user@192.168.122.100
+    ...
+
+It is recommended to configure ``/etc/default/grub`` for hugepages and
+reboot the VM after installation.
+
+Finally, login to the VM, bind ports to DPDK and launch ``spp-ctl``
+and ``spp_primamry``.
+You should add ``-b`` option to be accessed from SPP CLI on host.
+
+.. code-block:: console
+
+    # terminal 5
+    $ ssh user@192.168.122.100
+    $ cd /path/to/spp
+    $ python3 src/spp-ctl/spp-ctl -b 192.168.122.100
+    ...
+
+Confirm that virtio interfaces are under the management of DPDK before
+launching DPDK processes.
+
+.. code-block:: console
+
+    # terminal 6
+    $ ssh user@192.168.122.100
+    $ cd /path/to/spp
+    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+        -l 1 -n 4 \
+        -m 1024 \
+        --huge-dir=/dev/hugepages \
+        --proc-type=primary \
+        --base-virtaddr 0x100000000
+        -- \
+        -p 0x03 \
+        -n 6 \
+        -s 192.168.122.100:5555
+
+You can configure SPP running on the VM from SPP CLI.
+Use ``server`` command to switch node under the management.
+
+.. code-block:: none
+
+    # terminal 2
+    # show list of spp-ctl nodes
+    spp > server
+    1: 192.168.1.100:7777 *
+    2: 192.168.122.100:7777
+
+    # change node under the management
+    spp > server 2
+    Switch spp-ctl to "2: 192.168.122.100:7777".
+
+    # confirm node is switched
+    spp > server
+    1: 192.168.1.100:7777
+    2: 192.168.122.100:7777 *
+
+    # configure SPP on VM
+    spp > status
+    ...
+
+Now, you are ready to setup your network environment for DPDK and non-DPDK
+applications with SPP.
+SPP enables users to configure service function chaining between applications
+running on host and VMs.
+Usecases of network configuration are explained in the next chapter.
diff --git a/docs/guides/gsg/index.rst b/docs/guides/gsg/index.rst
new file mode 100644
index 0000000..c73d8bb
--- /dev/null
+++ b/docs/guides/gsg/index.rst
@@ -0,0 +1,14 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2014 Intel Corporation
+
+Getting Started Guide
+=====================
+
+.. toctree::
+   :maxdepth: 2
+   :numbered:
+
+   setup
+   install
+   howto_use
+   performance_opt
diff --git a/docs/guides/gsg/install.rst b/docs/guides/gsg/install.rst
new file mode 100644
index 0000000..3bf5246
--- /dev/null
+++ b/docs/guides/gsg/install.rst
@@ -0,0 +1,282 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2017-2019 Nippon Telegraph and Telephone Corporation
+
+
+.. _setup_install_dpdk_spp:
+
+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>`_ .
+
+DPDK
+----
+
+Clone repository and compile DPDK in any directory.
+
+.. code-block:: console
+
+    $ cd /path/to/any
+    $ git clone http://dpdk.org/git/dpdk
+
+To compile DPDK, required to install libnuma-devel library.
+
+.. code-block:: console
+
+    $ sudo apt install libnuma-dev
+
+Python and pip are also required if not installed.
+
+.. code-block:: console
+
+    # Python2
+    $ sudo apt install python python-pip
+
+    # Python3
+    $ sudo apt install python3 python3-pip
+
+SPP provides libpcap-based PMD for dumping packet to a file or retrieve
+it from the file.
+To use PCAP PMD, install ``libpcap-dev`` and enable it.
+``text2pcap`` is also required for creating pcap file which
+is included in ``wireshark``.
+
+.. code-block:: console
+
+    $ sudo apt install libpcap-dev
+    $ sudo apt install wireshark
+
+PCAP is disabled by default in DPDK configuration.
+``CONFIG_RTE_LIBRTE_PMD_PCAP`` and ``CONFIG_RTE_PORT_PCAP`` define the
+configuration and enabled it to ``y``.
+
+.. code-block:: console
+
+    # dpdk/config/common_base
+    CONFIG_RTE_LIBRTE_PMD_PCAP=y
+    ...
+    CONFIG_RTE_PORT_PCAP=y
+
+Compile DPDK with target environment.
+
+.. code-block:: console
+
+    $ cd dpdk
+    $ export RTE_SDK=$(pwd)
+    $ export RTE_TARGET=x86_64-native-linuxapp-gcc  # depends on your env
+    $ make install T=$RTE_TARGET
+
+
+SPP
+---
+
+Clone repository 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
+
+It also required to install Python3 and packages for running python scripts
+as following.
+You might need to run ``pip3`` with ``sudo`` if it is failed.
+
+.. code-block:: console
+
+    $ sudo apt update
+    $ sudo apt install python3
+    $ sudo apt install python3-pip
+    $ pip3 install -r requirements.txt
+
+
+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 ... 10bc' if=enp41s0f0 drv=e1000e unused=
+    0000:29:00.1 '82571EB ... 10bc' if=enp41s0f1 drv=e1000e unused=
+    0000:2a:00.0 '82571EB ... 10bc' if=enp42s0f0 drv=e1000e unused=
+    0000:2a:00.1 '82571EB ... 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 ... 10bc' drv=uio_pci_generic unused=vfio-pci
+    0000:2a:00.1 '82571EB ... 10bc' drv=uio_pci_generic unused=vfio-pci
+
+    Network devices using kernel driver
+    ===================================
+    0000:29:00.0 '...' if=enp41s0f0 drv=e1000e unused=vfio-pci,uio_pci_generic
+    0000:29:00.1 '...' if=enp41s0f1 drv=e1000e unused=vfio-pci,uio_pci_generic
+
+    Other Network devices
+    =====================
+    <none>
+    ....
+
+
+Confirm DPDK is setup properly
+------------------------------
+
+You can confirm if you are ready to use DPDK by running DPDK's sample
+application. ``l2fwd`` is good choice to confirm it before SPP because
+it is very similar to SPP's worker process for forwarding.
+
+.. 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 simply with just two options
+while DPDK has many kinds of options.
+
+  - -l: core list
+  - -p: port mask
+
+.. code-block:: console
+
+   $ sudo ./build/app/l2fwd \
+     -l 1-2 \
+     -- -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.
+
+
+Build Documentation
+-------------------
+
+This documentation is able to be biult as HTML and PDF formats from make
+command. Before compiling the documentation, you need to install some of
+packages required to compile.
+
+For HTML documentation, install sphinx and additional theme.
+
+.. code-block:: console
+
+    $ pip install sphinx
+    $ pip install sphinx-rtd-theme
+
+For PDF, inkscape and latex packages are required.
+
+.. code-block:: console
+
+    $ sudo apt install inkscape
+    $ sudo apt install texlive-latex-extra
+    $ sudo apt install texlive-latex-recommended
+
+You might also need to install ``latexmk`` in addition to if you use
+Ubuntu 18.04 LTS.
+
+.. code-block:: console
+
+    $ sudo apt install latexmk
+
+HTML documentation is compiled by running make with ``doc-html``. This
+command launch sphinx for compiling HTML documents.
+Compiled HTML files are created in ``docs/guides/_build/html/`` and
+You can find the top page ``index.html`` in the directory.
+
+.. code-block:: console
+
+    $ make doc-html
+
+PDF documentation is compiled with ``doc-pdf`` which runs latex for.
+Compiled PDF file is created as ``docs/guides/_build/html/SoftPatchPanel.pdf``.
+
+.. code-block:: console
+
+    $ make doc-pdf
+
+You can also compile both of HTML and PDF documentations with ``doc`` or
+``doc-all``.
+
+.. code-block:: console
+
+    $ make doc
+    # or
+    $ make doc-all
diff --git a/docs/guides/gsg/performance_opt.rst b/docs/guides/gsg/performance_opt.rst
new file mode 100644
index 0000000..d4a85f1
--- /dev/null
+++ b/docs/guides/gsg/performance_opt.rst
@@ -0,0 +1,82 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2014 Intel Corporation
+
+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>`_
diff --git a/docs/guides/gsg/setup.rst b/docs/guides/gsg/setup.rst
new file mode 100644
index 0000000..ebcfeee
--- /dev/null
+++ b/docs/guides/gsg/setup.rst
@@ -0,0 +1,152 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2014 Intel Corporation
+    Copyright(c) 2017-2019 Nippon Telegraph and Telephone Corporation
+
+
+.. _gsg_setup:
+
+Setup
+=====
+
+This documentation is described for Ubuntu 16.04 and later.
+
+
+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
+
+    # /etc/default/grub
+    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 | grep pdpe1gb
+        flags           : fpu vme ... pdpe1gb ...
+
+You should run ``update-grub`` after editing to update grub's config file,
+or this configuration is not activated.
+
+.. code-block:: console
+
+   $ sudo update-grub
+   Generating grub configuration file ...
+
+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
+
+    # /etc/fstab
+    nodev /mnt/huge hugetlbfs defaults 0 0
+
+For 1GB, the size of hugepage must be specified.
+
+.. code-block:: console
+
+    # /etc/fstab
+    nodev /mnt/huge_1GB hugetlbfs pagesize=1GB 0 0
+
+
+Disable ASLR
+------------
+
+SPP is a DPDK multi-process application and there are a number of
+`limitations
+<https://dpdk.org/doc/guides/prog_guide/multi_proc_support.html#multi-process-limitations>`_
+.
+
+Address-Space Layout Randomization (ASLR) is a security feature for
+memory protection, but may cause a failure of memory
+mapping while starting multi-process application as discussed in
+`dpdk-dev
+<http://dpdk.org/ml/archives/dev/2014-September/005236.html>`_
+.
+
+ASLR can be disabled by assigning ``kernel.randomize_va_space`` to
+``0``, or be enabled by assigning it to ``2``.
+
+.. code-block:: console
+
+    # disable ASLR
+    $ sudo sysctl -w kernel.randomize_va_space=0
+
+    # enable ASLR
+    $ sudo sysctl -w kernel.randomize_va_space=2
+
+You can check the value as following.
+
+.. code-block:: console
+
+    $ sysctl -n kernel.randomize_va_space
+
+
+Vhost Client Mode
+-----------------
+
+SPP secondary process supports ``--vhost-client`` options for using vhost port.
+In vhost client mode, qemu creates socket file instead of secondary process.
+It means that you can launch a VM before secondary process create vhost port.
+
+.. note::
+
+    Vhost client mode is supported by qemu 2.7 or later.
+
+
+Python 2 or 3 ?
+---------------
+
+In SPP, Python3 is required only for running ``spp-ctl``. Other python scripts
+are able to be launched both of Python2 and 3.
+
+Howevrer, Python2 will not be maintained after 2020 and SPP is going to update
+only supporting Python3.
+In SPP, it is planned to support only Python3 before the end of 2019.
diff --git a/docs/guides/index.rst b/docs/guides/index.rst
index d230081..a64a7a3 100644
--- a/docs/guides/index.rst
+++ b/docs/guides/index.rst
@@ -10,7 +10,7 @@ SPP documentation
 
    overview
    design/index
-   setup/index
+   gsg/index
    use_cases/index
    commands/index
    tools/index
diff --git a/docs/guides/setup/getting_started.rst b/docs/guides/setup/getting_started.rst
deleted file mode 100644
index 8cda22b..0000000
--- a/docs/guides/setup/getting_started.rst
+++ /dev/null
@@ -1,420 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-    Copyright(c) 2017-2019 Nippon Telegraph and Telephone Corporation
-
-.. _getting_started:
-
-Getting Started
-===============
-
-This documentation is described for Ubuntu 16.04 and later.
-
-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
-
-    # /etc/default/grub
-    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 | grep pdpe1gb
-        flags           : fpu vme ... pdpe1gb ...
-
-You should run ``update-grub`` after editing to update grub's config file,
-or this configuration is not activated.
-
-.. code-block:: console
-
-   $ sudo update-grub
-   Generating grub configuration file ...
-
-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
-
-    # /etc/fstab
-    nodev /mnt/huge hugetlbfs defaults 0 0
-
-For 1GB, the size of hugepage must be specified.
-
-.. code-block:: console
-
-    # /etc/fstab
-    nodev /mnt/huge_1GB hugetlbfs pagesize=1GB 0 0
-
-
-Disable ASLR
-~~~~~~~~~~~~
-
-SPP is a DPDK multi-process application and there are a number of
-`limitations
-<https://dpdk.org/doc/guides/prog_guide/multi_proc_support.html#multi-process-limitations>`_
-.
-
-Address-Space Layout Randomization (ASLR) is a security feature for
-memory protection, but may cause a failure of memory
-mapping while starting multi-process application as discussed in
-`dpdk-dev
-<http://dpdk.org/ml/archives/dev/2014-September/005236.html>`_
-.
-
-ASLR can be disabled by assigning ``kernel.randomize_va_space`` to
-``0``, or be enabled by assigning it to ``2``.
-
-.. code-block:: console
-
-    # disable ASLR
-    $ sudo sysctl -w kernel.randomize_va_space=0
-
-    # enable ASLR
-    $ sudo sysctl -w kernel.randomize_va_space=2
-
-You can check the value as following.
-
-.. code-block:: console
-
-    $ sysctl -n kernel.randomize_va_space
-
-.. _install_dpdk_spp:
-
-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>`_ .
-
-DPDK
-~~~~
-
-Clone repository and compile DPDK in any directory.
-
-.. code-block:: console
-
-    $ cd /path/to/any
-    $ git clone http://dpdk.org/git/dpdk
-
-To compile DPDK, required to install libnuma-devel library.
-
-.. code-block:: console
-
-    $ sudo apt install libnuma-dev
-
-Python and pip are also required if not installed.
-
-.. code-block:: console
-
-    # Python2
-    $ sudo apt install python python-pip
-
-    # Python3
-    $ sudo apt install python3 python3-pip
-
-SPP provides libpcap-based PMD for dumping packet to a file or retrieve
-it from the file.
-To use PCAP PMD, install ``libpcap-dev`` and enable it.
-``text2pcap`` is also required for creating pcap file which
-is included in ``wireshark``.
-
-.. code-block:: console
-
-    $ sudo apt install libpcap-dev
-    $ sudo apt install wireshark
-
-PCAP is disabled by default in DPDK configuration.
-``CONFIG_RTE_LIBRTE_PMD_PCAP`` and ``CONFIG_RTE_PORT_PCAP`` define the
-configuration and enabled it to ``y``.
-
-.. code-block:: console
-
-    # dpdk/config/common_base
-    CONFIG_RTE_LIBRTE_PMD_PCAP=y
-    ...
-    CONFIG_RTE_PORT_PCAP=y
-
-Compile DPDK with target environment.
-
-.. code-block:: console
-
-    $ cd dpdk
-    $ export RTE_SDK=$(pwd)
-    $ export RTE_TARGET=x86_64-native-linuxapp-gcc  # depends on your env
-    $ make install T=$RTE_TARGET
-
-
-SPP
-~~~
-
-Clone repository 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
-
-It also required to install Python3 and packages for running python scripts
-as following.
-You might need to run ``pip3`` with ``sudo`` if it is failed.
-
-.. code-block:: console
-
-    $ sudo apt update
-    $ sudo apt install python3
-    $ sudo apt install python3-pip
-    $ pip3 install -r requirements.txt
-
-
-Python 2 or 3 ?
-~~~~~~~~~~~~~~~
-
-In SPP, Python3 is required only for running ``spp-ctl``. Other python scripts
-are able to be launched both of Python2 and 3.
-
-Howevrer, Python2 will not be maintained after 2020 and SPP is going to update
-only supporting Python3.
-In SPP, it is planned to support only Python3 before the end of 2019.
-
-
-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 ... 10bc' if=enp41s0f0 drv=e1000e unused=
-    0000:29:00.1 '82571EB ... 10bc' if=enp41s0f1 drv=e1000e unused=
-    0000:2a:00.0 '82571EB ... 10bc' if=enp42s0f0 drv=e1000e unused=
-    0000:2a:00.1 '82571EB ... 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 ... 10bc' drv=uio_pci_generic unused=vfio-pci
-    0000:2a:00.1 '82571EB ... 10bc' drv=uio_pci_generic unused=vfio-pci
-
-    Network devices using kernel driver
-    ===================================
-    0000:29:00.0 '...' if=enp41s0f0 drv=e1000e unused=vfio-pci,uio_pci_generic
-    0000:29:00.1 '...' if=enp41s0f1 drv=e1000e unused=vfio-pci,uio_pci_generic
-
-    Other Network devices
-    =====================
-    <none>
-    ....
-
-
-Confirm DPDK is setup properly
-------------------------------
-
-You can confirm if you are ready to use DPDK by running DPDK's sample
-application. ``l2fwd`` is good choice to confirm it before SPP because
-it is very similar to SPP's worker process for forwarding.
-
-.. 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 simply with just two options
-while DPDK has many kinds of options.
-
-  - -l: core list
-  - -p: port mask
-
-.. code-block:: console
-
-   $ sudo ./build/app/l2fwd \
-     -l 1-2 \
-     -- -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.
-
-
-Build Documentation
--------------------
-
-This documentation is able to be biult as HTML and PDF formats from make
-command. Before compiling the documentation, you need to install some of
-packages required to compile.
-
-For HTML documentation, install sphinx and additional theme.
-
-.. code-block:: console
-
-    $ pip install sphinx
-    $ pip install sphinx-rtd-theme
-
-For PDF, inkscape and latex packages are required.
-
-.. code-block:: console
-
-    $ sudo apt install inkscape
-    $ sudo apt install texlive-latex-extra
-    $ sudo apt install texlive-latex-recommended
-
-You might also need to install ``latexmk`` in addition to if you use
-Ubuntu 18.04 LTS.
-
-.. code-block:: console
-
-    $ sudo apt install latexmk
-
-HTML documentation is compiled by running make with ``doc-html``. This
-command launch sphinx for compiling HTML documents.
-Compiled HTML files are created in ``docs/guides/_build/html/`` and
-You can find the top page ``index.html`` in the directory.
-
-.. code-block:: console
-
-    $ make doc-html
-
-PDF documentation is compiled with ``doc-pdf`` which runs latex for.
-Compiled PDF file is created as ``docs/guides/_build/html/SoftPatchPanel.pdf``.
-
-.. code-block:: console
-
-    $ make doc-pdf
-
-You can also compile both of HTML and PDF documentations with ``doc`` or
-``doc-all``.
-
-.. code-block:: console
-
-    $ make doc
-    # or
-    $ make doc-all
diff --git a/docs/guides/setup/howto_use.rst b/docs/guides/setup/howto_use.rst
deleted file mode 100644
index cc3dd9b..0000000
--- a/docs/guides/setup/howto_use.rst
+++ /dev/null
@@ -1,578 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-.. _spp_setup_howto_use:
-
-How to Use
-==========
-
-As described in :ref:`Design<spp_overview_design>`, SPP consists of
-primary process for managing resources, secondary processes for
-forwarding packet, and SPP controller to accept user commands and
-send it to SPP processes.
-
-You should keep in mind the order of launching processes.
-Primary process must be launched before secondary processes.
-``spp-ctl`` need to be launched before SPP CLI, but no need to be launched
-before other processes. SPP CLI is launched from ``spp.py``.
-If ``spp-ctl`` is not running after primary and
-secondary processes are launched, processes wait ``spp-ctl`` is launched.
-
-In general, ``spp-ctl`` should be launched first, then SPP CLI and
-``spp_primary`` in each of terminals without running as background process.
-After ``spp_primary``, you launch secondary processes for your usage.
-If you just patch two DPDK applications on host, it is enough to use one
-``spp_nfv``, or use ``spp_vf`` if you need to classify packets.
-How to use of these secondary processes is described in next chapters.
-
-
-SPP Controller
---------------
-
-SPP Controller consists of ``spp-ctl`` and SPP CLI.
-
-spp-ctl
-~~~~~~~
-
-``spp-ctl`` is a HTTP server for REST APIs for managing SPP
-processes. In default, it is accessed with URL ``http://127.0.0.1:7777``
-or ``http://localhost:7777``.
-``spp-ctl`` shows no messages at first after launched, but shows
-log messages for events such as receiving a request or terminating
-a process.
-
-.. code-block:: console
-
-    # terminal 1
-    $ cd /path/to/spp
-    $ python3 src/spp-ctl/spp-ctl
-
-Notice that ``spp-ctl`` is implemented in ``python3`` and cannot be
-launched with ``python2``.
-
-It has a option ``-b`` for binding address explicitly to be accessed
-from other than default, ``127.0.0.1`` or ``localhost``.
-If you deploy SPP on multiple nodes, you might need to use ``-b`` option
-it to be accessed from other processes running on other than local node.
-
-.. code-block:: console
-
-    # launch with URL http://192.168.1.100:7777
-    $ python3 src/spp-ctl/spp-ctl -b 192.168.1.100
-
-``spp-ctl`` is the most important process in SPP. For some usecases,
-you might better to manage this process with ``systemd``.
-Here is a simple example of service file for systemd.
-
-.. code-block:: none
-
-    [Unit]
-    Description = SPP Controller
-
-    [Service]
-    ExecStart = /usr/bin/python3 /path/to/spp/src/spp-ctl/spp-ctl
-    User = root
-
-All of options can be referred with help option ``-h``.
-
-.. code-block:: console
-
-    python3 ./src/spp-ctl/spp-ctl -h
-    usage: spp-ctl [-h] [-b BIND_ADDR] [-p PRI_PORT] [-s SEC_PORT] [-a API_PORT]
-
-    SPP Controller
-
-    optional arguments:
-      -h, --help            show this help message and exit
-      -b BIND_ADDR, --bind-addr BIND_ADDR
-                            bind address, default=localhost
-      -p PRI_PORT           primary port, default=5555
-      -s SEC_PORT           secondary port, default=6666
-      -a API_PORT           web api port, default=7777
-
-.. _spp_setup_howto_use_spp_cli:
-
-SPP CLI
-~~~~~~~
-
-If ``spp-ctl`` is launched, go to the next terminal and launch SPP CLI.
-It supports both of Python 2 and 3, so use ``python`` in this case.
-
-.. code-block:: console
-
-    # terminal 2
-    $ cd /path/to/spp
-    $ python src/spp.py
-    Welcome to the spp.   Type help or ? to list commands.
-
-    spp >
-
-If you launched ``spp-ctl`` with ``-b`` option, you also need to use the same
-option for ``spp.py``, or failed to connect and to launch.
-
-.. code-block:: console
-
-    # terminal 2
-    # bind to spp-ctl on http://192.168.1.100:7777
-    $ python src/spp.py -b 192.168.1.100
-    Welcome to the spp.   Type help or ? to list commands.
-
-    spp >
-
-One of the typical usecase of this option is to deploy multiple SPP nodes.
-:numref:`figure_spp_howto_multi_spp` is an exmaple of multiple nodes case.
-There are three nodes on each of which ``spp-ctl`` is running for accepting
-requests for SPP. These ``spp-ctl`` processes are controlled from
-``spp.py`` on host1 and all of paths are configured across the nodes.
-It is also able to be configured between hosts by changing
-soure or destination of phy ports.
-
-.. _figure_spp_howto_multi_spp:
-
-.. figure:: ../images/setup/howto_use/spp_howto_multi_spp.*
-   :width: 80%
-
-   Multiple SPP nodes
-
-Launch SPP CLI with three entries of binding addresses with ``-b`` option
-for specifying ``spp-ctl``.
-
-.. code-block:: console
-
-    # Launch SPP CLI with three nodes
-    $ python src/spp.py -b 192.168.11.101 \
-        -b 192.168.11.102 \
-        -b 192.168.11.103 \
-
-You can also add nodes after SPP CLI is launched.
-
-.. code-block:: console
-
-    # Launch SPP CLI with one node
-    $ python src/spp.py -b 192.168.11.101
-    Welcome to the SPP CLI. Type `help` or `?` to list commands.
-
-    # Add the rest of nodes after
-    spp > server add 192.168.11.102
-    Registered spp-ctl "192.168.11.102:7777".
-    spp > server add 192.168.11.103
-    Registered spp-ctl "192.168.11.103:7777".
-
-You find the host under the management of SPP CLI and switch with
-``server`` command.
-
-.. code-block:: none
-
-    spp > server list
-      1: 192.168.1.101:7777 *
-      2: 192.168.1.102:7777
-      3: 192.168.1.103:7777
-
-To change the server, add an index number after ``server``.
-
-.. code-block:: none
-
-    # Launch SPP CLI
-    spp > server 3
-    Switch spp-ctl to "3: 192.168.1.103:7777".
-
-All of options can be referred with help option ``-h``.
-
-.. code-block:: console
-
-    $ python src/spp.py -h
-    usage: spp.py [-h] [-b BIND_ADDR] [-a API_PORT]
-
-    SPP Controller
-
-    optional arguments:
-      -h, --help            show this help message and exit
-      -b BIND_ADDR, --bind-addr BIND_ADDR
-                            bind address, default=127.0.0.1
-      -a API_PORT, --api-port API_PORT
-                        bind address, default=777
-
-All of SPP CLI commands are described in :doc:`../../commands/index`.
-
-
-Default Configuration
-^^^^^^^^^^^^^^^^^^^^^
-
-SPP CLI imports several params from configuration file while launching.
-Some of behaviours of SPP CLI depends on the params.
-The default configuration is defined in
-``src/controller/config/default.yml``.
-You can change this params by editing the config file, or from ``config``
-command after SPP CLI is launched.
-
-All of config params are referred by ``config`` command.
-
-.. code-block:: none
-
-    # show list of config
-    spp > config
-    - max_secondary: "16"       # The maximum number of secondary processes
-    - sec_nfv_nof_lcores: "1"   # Default num of lcores for workers of spp_nfv
-    ....
-
-To change the config, set a value for the param.
-Here is an example for changing command prompt.
-
-.. code-block:: none
-
-    # set prompt to "$ spp "
-    spp > config prompt "$ spp "
-    Set prompt: "$ spp "
-    $ spp
-
-
-SPP Primary
------------
-
-SPP primary is a resource manager and has a responsibility for
-initializing EAL for secondary processes. It should be launched before
-secondary.
-
-To launch SPP primary, run ``spp_primary`` with specific options.
-
-.. code-block:: console
-
-    # terminal 3
-    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-        -l 1 -n 4 \
-        --socket-mem 512,512 \
-        --huge-dir /dev/hugepages \
-        --proc-type primary \
-        --base-virtaddr 0x100000000
-        -- \
-        -p 0x03 \
-        -n 10 \
-        -s 192.168.1.100:5555
-
-SPP primary takes EAL options and application specific options.
-
-Core list option ``-l`` is for assigining cores and SPP primary requires just
-one core. You can use core mask option ``-c`` instead of ``-l``.
-You can use ``-m 1024`` for memory reservation instead of
-``--socket-mem 1024,0`` if you use single NUMA node. In this case, 512 MB is
-reserved on each of nodes.
-
-.. note::
-
-   If you use DPDK v18.08 or before,
-   you should consider give ``--base-virtaddr`` with 4 GiB or higher value
-   because a secondary process is accidentally failed to mmap while init
-   memory. The reason of the failure is secondary process tries to reserve
-   the region which is already used by some of thread of primary.
-
-   .. code-block:: console
-
-      # Failed to secondary
-      EAL: Could not mmap 17179869184 ... - please use '--base-virtaddr' option
-
-   ``--base-virtaddr`` is to decide base address explicitly to avoid this
-   overlapping. 4 GiB ``0x100000000`` is enough for the purpose.
-
-   If you use DPDK v18.11 or later, ``--base-virtaddr 0x100000000`` is enabled
-   in default. You need to use this option only for changing the default value.
-
-
-In general, one lcore is enough for ``spp_primary``. If you give two or
-more, it uses second lcore to display statistics periodically and does not
-use others.
-
-.. note::
-
-    Anyway, you can get statistics in SPP CLI with ``pri; status`` command
-    actually even if you give only one core.
-
-Primary process sets up physical ports of given port mask with ``-p`` option
-and ring ports of the number of ``-n`` option. Ports of  ``-p`` option is for
-accepting incomming packets and ``-n`` option is for inter-process packet
-forwarding. You can also add ports initialized with ``--vdev`` option to
-physical ports. However, ports added with ``--vdev`` cannot referred from
-secondary processes.
-
-.. code-block:: console
-
-    # terminal 3
-    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-        -l 1 -n 4 \
-        --socket-mem 512,512 \
-        --huge-dir=/dev/hugepages \
-        --vdev eth_vhost1,iface=/tmp/sock1  # used as 1st phy port
-        --vdev eth_vhost2,iface=/tmp/sock2  # used as 2nd phy port
-        --proc-type=primary \
-        --base-virtaddr 0x100000000
-        -- \
-        -p 0x03 \
-        -n 10 \
-        -s 192.168.1.100:5555
-
-- EAL options:
-
-  - -l: core list
-  - --socket-mem: Memory size on each of NUMA nodes.
-  - --huge-dir: Path of hugepage dir.
-  - --proc-type: Process type.
-  - --base-virtaddr: Specify base virtual address.
-
-- Application options:
-
-  - -p: Port mask.
-  - -n: Number of ring PMD.
-  - -s: IP address of controller and port prepared for primary.
-
-
-SPP Secondary
--------------
-
-Secondary process behaves as a client of primary process and a worker
-for doing tasks for packet processing. There are several kinds of secondary
-process, for example, simply forwarding between ports or classsifying
-by referring packet header.
-
-This section describes about the simplest ``spp_nfv`` which simply forward
-packets similar to ``l2fwd``.
-
-
-Launch spp_nfv on Host
-~~~~~~~~~~~~~~~~~~~~~~
-
-Run ``spp_nfv`` with options.
-
-.. code-block:: console
-
-    # terminal 4
-    $ cd /path/to/spp
-    $ sudo ./src/nfv/x86_64-native-linuxapp-gcc/spp_nfv \
-        -l 2-3 -n 4 \
-        --proc-type=secondary \
-        -- \
-        -n 1 \
-        -s 192.168.1.100:6666
-
-- EAL options:
-
-  - -l: core list (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, it
-is failed.
-
-
-Launch from SPP CLI
-~~~~~~~~~~~~~~~~~~~
-
-You can launch SPP secondary processes from SPP CLI wihtout openning
-other terminals. ``pri; launch`` command is for any of secondary processes
-with specific options. It takes secondary type, ID and options of EAL
-and application itself as similar to launching from terminal.
-Here is an example of launching ``spp_nfv``. You notice that there is no
-``--proc-type secondary`` which should be required for secondary.
-It is added to the options by SPP CLI before launching the process.
-
-.. code-block:: none
-
-    # terminal 2
-    # launch spp_nfv with sec ID 2
-    spp > pri; launch nfv 2 -l 1,2 -m 512 -- -n 2 -s 192.168.1.100:6666
-    Send request to launch nfv:2.
-
-After running this command, you can find ``nfv:2`` is launched
-successfully.
-
-.. code-block:: none
-
-    # terminal 2
-    spp > status
-    - spp-ctl:
-      - address: 192.168.1.100:7777
-    - primary:
-      - status: running
-    - secondary:
-      - processes:
-        1: nfv:2
-
-Instead of displaying log messages in terminal, it outputs the messages
-in a log file. All of log files of secondary processes launched with
-``pri`` are located in ``log/`` directory under the project root.
-The name of log file is found ``log/spp_nfv-2.log``.
-
-.. code-block:: console
-
-    # terminal 5
-    $ tail -f log/spp_nfv-2.log
-    SPP_NFV: Used lcores: 1 2
-    SPP_NFV: entering main loop on lcore 2
-    SPP_NFV: My ID 2 start handling message
-    SPP_NFV: [Press Ctrl-C to quit ...]
-    SPP_NFV: Creating socket...
-    SPP_NFV: Trying to connect ... socket 24
-    SPP_NFV: Connected
-    SPP_NFV: Received string: _get_client_id
-    SPP_NFV: token 0 = _get_client_id
-    SPP_NFV: To Server: {"results":[{"result":"success"}],"client_id":2, ...
-
-
-Launch SPP 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.
-Run ``add`` command with resource UID ``vhost:0`` to create socket file.
-
-.. code-block:: none
-
-    # terminal 2
-    spp > nfv 1; add vhost:0
-
-In this example, it creates socket file with index 0 from ``spp_nfv`` 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. You cannot use this example as it is because some options are
-depend on your environment.
-You should specify disk image with ``-hda``, sixth option in this
-example, and ``qemu-ifup`` script for assigning an IP address for the VM
-to be able to access as 12th line.
-
-.. code-block:: console
-
-    # terminal 5
-    $ 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 \
-        -device virtio-net-pci,netdev=net1,mac=00:AD:BE:B4:11:00 \
-        -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::
-
-    In general, you need to prepare several qemu images for launcing
-    several VMs, but installing DPDK and SPP for several images is bother
-    and time consuming.
-
-    You can shortcut this tasks by creating a template image and copy it
-    to the VMs. It is just one time for installing for template.
-
-After VM is booted, you install DPDK and SPP in the VM as in the host.
-IP address of the VM is assigned while it is created and you can find
-the address in a file generated from libvirt if you use Ubuntu.
-
-.. code-block:: console
-
-    # terminal 5
-    $ cat /var/lib/libvirt/dnsmasq/virbr0.status
-    [
-        {
-            "ip-address": "192.168.122.100",
-            ...
-
-    # Login VM, install DPDK and SPP
-    $ ssh user@192.168.122.100
-    ...
-
-It is recommended to configure ``/etc/default/grub`` for hugepages and
-reboot the VM after installation.
-
-Finally, login to the VM, bind ports to DPDK and launch ``spp-ctl``
-and ``spp_primamry``.
-You should add ``-b`` option to be accessed from SPP CLI on host.
-
-.. code-block:: console
-
-    # terminal 5
-    $ ssh user@192.168.122.100
-    $ cd /path/to/spp
-    $ python3 src/spp-ctl/spp-ctl -b 192.168.122.100
-    ...
-
-Confirm that virtio interfaces are under the management of DPDK before
-launching DPDK processes.
-
-.. code-block:: console
-
-    # terminal 6
-    $ ssh user@192.168.122.100
-    $ cd /path/to/spp
-    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-        -l 1 -n 4 \
-        -m 1024 \
-        --huge-dir=/dev/hugepages \
-        --proc-type=primary \
-        --base-virtaddr 0x100000000
-        -- \
-        -p 0x03 \
-        -n 6 \
-        -s 192.168.122.100:5555
-
-You can configure SPP running on the VM from SPP CLI.
-Use ``server`` command to switch node under the management.
-
-.. code-block:: none
-
-    # terminal 2
-    # show list of spp-ctl nodes
-    spp > server
-    1: 192.168.1.100:7777 *
-    2: 192.168.122.100:7777
-
-    # change node under the management
-    spp > server 2
-    Switch spp-ctl to "2: 192.168.122.100:7777".
-
-    # confirm node is switched
-    spp > server
-    1: 192.168.1.100:7777
-    2: 192.168.122.100:7777 *
-
-    # configure SPP on VM
-    spp > status
-    ...
-
-Now, you are ready to setup your network environment for DPDK and non-DPDK
-applications with SPP.
-SPP enables users to configure service function chaining between applications
-running on host and VMs.
-Usecases of network configuration are explained in the next chapter.
diff --git a/docs/guides/setup/index.rst b/docs/guides/setup/index.rst
deleted file mode 100644
index bc8d8a6..0000000
--- a/docs/guides/setup/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-Setup Guide
-===========
-
-.. toctree::
-   :maxdepth: 2
-   :numbered:
-
-   getting_started
-   howto_use
-   performance_opt
diff --git a/docs/guides/setup/performance_opt.rst b/docs/guides/setup/performance_opt.rst
deleted file mode 100644
index d4a85f1..0000000
--- a/docs/guides/setup/performance_opt.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-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>`_
diff --git a/docs/guides/tools/sppc/getting_started.rst b/docs/guides/tools/sppc/getting_started.rst
index 6a40b12..d92b55f 100644
--- a/docs/guides/tools/sppc/getting_started.rst
+++ b/docs/guides/tools/sppc/getting_started.rst
@@ -17,7 +17,7 @@ Setup DPDK and SPP
 
 First of all, you need to clone DPDK and setup hugepages for running
 DPDK application as described in
-:doc:`../../setup/getting_started`
+:doc:`../../gsg/setup`
 or DPDK's
 `Gettting Started Guide
 <https://dpdk.org/doc/guides/linux_gsg/sys_reqs.html>`_.
@@ -26,7 +26,7 @@ You also need to load kernel modules and bind network ports as in
 <https://dpdk.org/doc/guides/linux_gsg/linux_drivers.html>`_.
 
 Then, as described in
-:doc:`../../setup/getting_started`
+:doc:`../../gsg/install`
 , clone and compile SPP in any directory.
 
 .. code-block:: console
diff --git a/docs/guides/use_cases/spp_nfv.rst b/docs/guides/use_cases/spp_nfv.rst
index 39204e3..31ca4ea 100644
--- a/docs/guides/use_cases/spp_nfv.rst
+++ b/docs/guides/use_cases/spp_nfv.rst
@@ -382,7 +382,7 @@ Pcap PMD is an interface for capturing or restoring traffic.
 For usign pcap PMD, you should set ``CONFIG_RTE_LIBRTE_PMD_PCAP``
 and ``CONFIG_RTE_PORT_PCAP`` to ``y`` and compile DPDK before SPP.
 Refer to
-:ref:`Install DPDK and SPP<install_dpdk_spp>`
+:ref:`Install DPDK and SPP<setup_install_dpdk_spp>`
 for details of setting up.
 
 Pcap PMD has two different streams for rx and tx.
-- 
2.7.4

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

* [spp] [PATCH 03/20] docs: move libvirt setup to gsg
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 01/20] docs: move design of SPP VF ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 02/20] docs: divide getting started guide ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 04/20] docs: move virsh setup section ogawa.yasufumi
                   ` (16 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to move section of libvirt setup in `SPP VF` to
`Getting Started Guide`.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/gsg/performance_opt.rst |   3 +
 docs/guides/gsg/setup.rst           | 114 +++++++++++++++++++++++++++++
 docs/guides/spp_vf/gsg/setup.rst    | 139 ------------------------------------
 3 files changed, 117 insertions(+), 139 deletions(-)

diff --git a/docs/guides/gsg/performance_opt.rst b/docs/guides/gsg/performance_opt.rst
index d4a85f1..6fea4cb 100644
--- a/docs/guides/gsg/performance_opt.rst
+++ b/docs/guides/gsg/performance_opt.rst
@@ -1,6 +1,9 @@
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2010-2014 Intel Corporation
 
+
+.. _gsg_performance_opt:
+
 Performance Optimization
 ========================
 
diff --git a/docs/guides/gsg/setup.rst b/docs/guides/gsg/setup.rst
index ebcfeee..9e3d17d 100644
--- a/docs/guides/gsg/setup.rst
+++ b/docs/guides/gsg/setup.rst
@@ -11,6 +11,8 @@ Setup
 This documentation is described for Ubuntu 16.04 and later.
 
 
+.. _gsg_reserve_hugep:
+
 Reserving Hugepages
 -------------------
 
@@ -30,6 +32,9 @@ 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.
 
+You can also configure isolcpus for performance tuning as described in
+:ref:`Performance Optimizing<gsg_performance_opt>`.
+
 .. code-block:: console
 
     # /etc/default/grub
@@ -141,6 +146,102 @@ It means that you can launch a VM before secondary process create vhost port.
     Vhost client mode is supported by qemu 2.7 or later.
 
 
+Using Libvirt
+-------------
+
+If you use libvirt for managing virtual machines, you might need some
+additional configurations.
+
+Uncomment user and group in ``/etc/libvirt/qemu.conf``.
+
+.. code-block:: console
+
+    # /etc/libvirt/qemu.conf
+
+    user = "root"
+    group = "root"
+
+To use hugepages with libvirt, change ``KVM_HUGEPAGES`` from 0 to 1
+in ``/etc/default/qemu-kvm``.
+
+.. code-block:: console
+
+    # /etc/default/qemu-kvm
+
+    KVM_HUGEPAGES=1
+
+Change grub config as similar to
+:ref:`Reserving Hugepages<gsg_reserve_hugep>`.
+You can check hugepage settings as following.
+
+.. code-block:: console
+
+    $ cat /proc/meminfo | grep -i huge
+    AnonHugePages:      2048 kB
+    HugePages_Total:      36		#	/etc/default/grub
+    HugePages_Free:       36
+    HugePages_Rsvd:        0
+    HugePages_Surp:        0
+    Hugepagesize:    1048576 kB		#	/etc/default/grub
+
+    $ mount | grep -i huge
+    cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,...,nsroot=/)
+    hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
+    hugetlbfs-kvm on /run/hugepages/kvm type hugetlbfs (rw,...,gid=117)
+    hugetlb on /run/lxcfs/controllers/hugetlb type cgroup (rw,...,nsroot=/)
+
+Finally, you umount default hugepages.
+
+.. code-block:: console
+
+    $ sudo umount /dev/hugepages
+
+
+Trouble Shooting
+~~~~~~~~~~~~~~~~
+
+You might encounter a permission error while creating a resource,
+such as a socket file under ``tmp/``, because of AppArmor.
+
+You can avoid this error by editing ``/etc/libvirt/qemu.conf``.
+
+.. code-block:: console
+
+    # Set security_driver to "none"
+    $sudo vi /etc/libvirt/qemu.conf
+    ...
+    security_driver = "none"
+    ...
+
+Restart libvirtd to activate this configuration.
+
+.. code-block:: console
+
+    $sudo systemctl restart libvirtd.service
+
+Or, you can also avoid by simply removing AppArmor itself.
+
+.. code-block:: console
+
+    $ sudo apt-get remove apparmor
+
+If you use CentOS, not Ubuntu, confirm that SELinux doesn't prevent
+for permission.
+SELinux should be disabled in this case.
+
+.. code-block:: console
+
+    # /etc/selinux/config
+    SELINUX=disabled
+
+Check your SELinux configuration.
+
+.. code-block:: console
+
+    $ getenforce
+    Disabled
+
+
 Python 2 or 3 ?
 ---------------
 
@@ -150,3 +251,16 @@ are able to be launched both of Python2 and 3.
 Howevrer, Python2 will not be maintained after 2020 and SPP is going to update
 only supporting Python3.
 In SPP, it is planned to support only Python3 before the end of 2019.
+
+
+Reference
+---------
+
+* [1] `Use of Hugepages in the Linux Environment
+  <http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html#running-dpdk-applications>`_
+
+* [2] `Using Linux Core Isolation to Reduce Context Switches
+  <http://dpdk.org/doc/guides/linux_gsg/enable_func.html#using-linux-core-isolation-to-reduce-context-switches>`_
+
+* [3] `Linux boot command line
+  <http://dpdk.org/doc/guides/linux_gsg/nic_perf_intel_platform.html#linux-boot-command-line>`_
diff --git a/docs/guides/spp_vf/gsg/setup.rst b/docs/guides/spp_vf/gsg/setup.rst
index af45d28..426033e 100644
--- a/docs/guides/spp_vf/gsg/setup.rst
+++ b/docs/guides/spp_vf/gsg/setup.rst
@@ -6,106 +6,6 @@
 Setup
 =====
 
-This section describes how to setup ``spp_vf`` and ``spp_mirror``.
-
-
-Environment
------------
-
-Here is a recommended versions of each of software.
-
-* Ubuntu 16.04
-* qemu-kvm 2.7 or later
-
-.. note::
-
-    If you do not use ``--vhost-client`` as described in
-    :ref:`How to Use<spp_vf_gsg_howto_use_spp_vf>`
-    of spp_vf, you can use previous versions of qemu-kvm.
-
-
-Edit Config
------------
-
-Uncomment user and group in ``/etc/libvirt/qemu.conf``.
-
-.. code-block:: console
-
-    # /etc/libvirt/qemu.conf
-
-    user = "root"
-    group = "root"
-
-To use hugepages with libvirt, change ``KVM_HUGEPAGES`` from 0 to 1
-in ``/etc/default/qemu-kvm``.
-
-.. code-block:: console
-
-    # /etc/default/qemu-kvm
-
-    KVM_HUGEPAGES=1
-
-Change grub configuration for hugepages and isolcpus features. It is defined
-as ``GRUB_CMDLINE_LINUX_DEFAULT`` and takes parameters.
-
-* isolcpus: Core IDs separated with commna, such as ``2,3,4,8``
-* hugepagesz: The size of hugepage, such as ``2M`` or ``1G``
-* hugepages: The number of hugepages, such as ``8``
-* default_hugepagesz: Default hugepage size, required only for ``1G``
-
-In this setup guide, configure ``hugepagez`` and its default is ``1G`` and
-the number of hugepages is ``36``.
-Core IDs of for ``isolcpus`` depends on your environment and usecase,
-but should be configured to have enough number of cores.
-
-.. code-block:: c
-
-    # /etc/default/grub
-
-    GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=2,...,46 hugepagesz=1G hugepages=..."
-
-For hugepages, isolcpus, refer to the dpdk documentation below.
-
-* `Use of Hugepages in the Linux Environment
-  <http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html#running-dpdk-applications>`_
-* `Using Linux Core Isolation to Reduce Context Switches
-  <http://dpdk.org/doc/guides/linux_gsg/enable_func.html#using-linux-core-isolation-to-reduce-context-switches>`_
-* `Linux boot command line
-  <http://dpdk.org/doc/guides/linux_gsg/nic_perf_intel_platform.html#linux-boot-command-line>`_
-
-You need to run ``update-grub`` and reboot to activate grub config.
-
-.. code-block:: console
-
-    $ sudo update-grub
-    $ sudo reboot
-
-
-You can check hugepage settings as following.
-
-.. code-block:: console
-
-    $ cat /proc/meminfo | grep -i huge
-    AnonHugePages:      2048 kB
-    HugePages_Total:      36		#	/etc/default/grub
-    HugePages_Free:       36
-    HugePages_Rsvd:        0
-    HugePages_Surp:        0
-    Hugepagesize:    1048576 kB		#	/etc/default/grub
-
-    $ mount | grep -i huge
-    cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,...,nsroot=/)
-    hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
-    hugetlbfs-kvm on /run/hugepages/kvm type hugetlbfs (rw,...,gid=117)
-    hugetlb on /run/lxcfs/controllers/hugetlb type cgroup (rw,...,nsroot=/)
-
-Finally, you umount default hugepage.
-
-.. code-block:: console
-
-    $ sudo umount /dev/hugepages
-
-
 Install DPDK
 ------------
 
@@ -362,42 +262,3 @@ respectively, so you need to install ``liblz4-dev`` and ``liblz4-tool`` .
    $ sudo apt install libpcap-dev
    $ sudo apt install liblz4-dev
    $ sudo apt install liblz4-tool
-
-Trouble Shooting Guide
-----------------------
-
-You might encounter a permission error for ``tmp/sockN`` because
-of appamor.
-In this case, you should try it.
-
-.. code-block:: console
-
-    #Edit /etc/libvirt/qemu.conf and set security_driver to none:
-    $sudo vi /etc/libvirt/qemu.conf
-    ...
-    security_driver = "none"
-    ...
-    #Restart libvirtd:
-    $sudo systemctl restart libvirtd.service
-
-Or, you remove appamor.
-
-.. code-block:: console
-
-    $ sudo apt-get remove apparmor
-
-If you use CentOS, not Ubuntu, confirm that SELinux doesn't prevent
-for permission.
-SELinux should be disabled in this case.
-
-.. code-block:: console
-
-    # /etc/selinux/config
-    SELINUX=disabled
-
-Check your SELinux configuration.
-
-.. code-block:: console
-
-    $ getenforce
-    Disabled
-- 
2.7.4

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

* [spp] [PATCH 04/20] docs: move virsh setup section
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (2 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 03/20] docs: move libvirt setup to gsg ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 05/20] docs: move package installation to gsg ogawa.yasufumi
                   ` (15 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This patch is to move virsh setup section from `SPP VF` to `Getting
Started Guide`.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/gsg/howto_use.rst                 | 171 +++++++++++++++++++++++++-
 docs/guides/spp_vf/gsg/setup.rst              | 163 ------------------------
 docs/guides/spp_vf/use_cases/vf_ssh_login.rst |   2 +-
 docs/guides/use_cases/spp_nfv.rst             |   4 +-
 4 files changed, 173 insertions(+), 167 deletions(-)

diff --git a/docs/guides/gsg/howto_use.rst b/docs/guides/gsg/howto_use.rst
index cc3dd9b..d3b0ceb 100644
--- a/docs/guides/gsg/howto_use.rst
+++ b/docs/guides/gsg/howto_use.rst
@@ -1,7 +1,7 @@
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2010-2014 Intel Corporation
 
-.. _spp_setup_howto_use:
+.. _spp_gsg_howto_use:
 
 How to Use
 ==========
@@ -26,6 +26,8 @@ If you just patch two DPDK applications on host, it is enough to use one
 How to use of these secondary processes is described in next chapters.
 
 
+.. _spp_gsg_howto_controller:
+
 SPP Controller
 --------------
 
@@ -226,6 +228,8 @@ Here is an example for changing command prompt.
     $ spp
 
 
+.. _spp_gsg_howto_pri:
+
 SPP Primary
 -----------
 
@@ -324,6 +328,8 @@ secondary processes.
   - -s: IP address of controller and port prepared for primary.
 
 
+.. _spp_gsg_howto_sec:
+
 SPP Secondary
 -------------
 
@@ -576,3 +582,166 @@ applications with SPP.
 SPP enables users to configure service function chaining between applications
 running on host and VMs.
 Usecases of network configuration are explained in the next chapter.
+
+
+.. _spp_gsg_howto_virsh:
+
+Using virsh
+~~~~~~~~~~~
+
+First of all, please check version of qemu-kvm.
+
+.. code-block:: console
+
+    $ qemu-system-x86_64 --version
+
+If your system does not have qemu-kvm or the version of qemu is less than 2.7,
+then please install qemu following
+the instruction of https://wiki.qemu.org/index.php/Hosts/Linux
+to install qemu 2.7.
+You may need to install libvirt-bin,
+virtinst, bridge-utils packages via ``apt-get`` install to run
+``virt-install``.
+
+
+``virsh`` is a command line interface that can be used to create, destroy,
+stop start and edit VMs and configure. After create an image file,
+you can setup it with ``virt-install``.
+``--location`` is a URL of installer and it should be
+``http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/``
+for amd64.
+
+.. code-block:: console
+
+   virt-install \
+   --name [VM_NAME] \
+   --ram 4096 \
+   --disk path=/var/lib/libvirt/images/[VM_NAME].img,size=30 \
+   --vcpus 4 \
+   --os-type linux \
+   --os-variant ubuntu16.04 \
+   --network network=default \
+   --graphics none \
+   --console pty,target_type=serial \
+   --location '[LOCATION]' \
+   --extra-args 'console=ttyS0,115200n8 serial'
+
+You may need type the following commands through ssh to activate console.
+
+.. code-block:: console
+
+    $sudo systemctl enable serial-getty@ttyS0.service
+    $sudo systemctl start serial-getty@ttyS0.service
+
+
+Edit VM configuration with virsh.
+
+.. code-block:: console
+
+    $ virsh edit [VM_NAME]
+
+You need to add ``xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'``
+into the domain tag because of adding ``<qemu:commandline>`` tag.
+In addition, you need to add the tag enclosed by ``<memoryBacking>`` and
+``</memoryBacking>``, ``<qemu:commandline>`` and ``</qemu:commandline>``
+because SPP uses vhost-user as interface with VM.
+Note that number used in those tags should be the same value
+(e.g. chr0,sock0,vhost-net0) and these values should correspond
+to "add vhost N" (in this example 0).
+MAC address used in
+``<qemu:arg value='virtio-net-pci,netdev=vhost-net0,mac=52:54:00:12:34:56'/>``
+can be specified when registering MAC address to classifier
+using Secondary command.
+
+        The following is an example of modified xml file:
+
+.. code-block:: xml
+
+    <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
+      <name>spp-vm1</name>
+      <uuid>d90f5420-861a-4479-8559-62d7a1545cb9</uuid>
+      <memory unit='KiB'>4194304</memory>
+      <currentMemory unit='KiB'>4194304</currentMemory>
+      <memoryBacking>
+        <hugepages/>
+      </memoryBacking>
+      <vcpu placement='static'>4</vcpu>
+      <os>
+        <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
+        <boot dev='hd'/>
+      </os>
+      <features>
+        <acpi/>
+        <apic/>
+        <pae/>
+      </features>
+      <clock offset='utc'/>
+      <on_poweroff>destroy</on_poweroff>
+      <on_reboot>restart</on_reboot>
+      <on_crash>restart</on_crash>
+      <devices>
+        <emulator>/usr/local/bin/qemu-system-x86_64</emulator>
+        <disk type='file' device='disk'>
+          <driver name='qemu' type='raw'/>
+          <source file='/var/lib/libvirt/images/spp-vm1.qcow2'/>
+          <target dev='hda' bus='ide'/>
+          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+        </disk>
+        <disk type='block' device='cdrom'>
+          <driver name='qemu' type='raw'/>
+          <target dev='hdc' bus='ide'/>
+          <readonly/>
+          <address type='drive' controller='0' bus='1' target='0' unit='0'/>
+        </disk>
+        <controller type='usb' index='0'>
+          <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
+          function='0x2'/>
+        </controller>
+        <controller type='pci' index='0' model='pci-root'/>
+        <controller type='ide' index='0'>
+          <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
+          function='0x1'/>
+        </controller>
+        <interface type='network'>
+          <mac address='52:54:00:99:aa:7f'/>
+          <source network='default'/>
+          <model type='rtl8139'/>
+          <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
+          function='0x0'/>
+        </interface>
+        <serial type='pty'>
+          <target type='isa-serial' port='0'/>
+        </serial>
+        <console type='pty'>
+          <target type='serial' port='0'/>
+        </console>
+        <memballoon model='virtio'>
+          <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
+          function='0x0'/>
+        </memballoon>
+      </devices>
+      <qemu:commandline>
+        <qemu:arg value='-cpu'/>
+        <qemu:arg value='host'/>
+        <qemu:arg value='-object'/>
+        <qemu:arg
+        value='memory-backend-file,id=mem,size=4096M,mem-path=/run/hugepages/kvm,share=on'/>
+        <qemu:arg value='-numa'/>
+        <qemu:arg value='node,memdev=mem'/>
+        <qemu:arg value='-mem-prealloc'/>
+        <qemu:arg value='-chardev'/>
+        <qemu:arg value='socket,id=chr0,path=/tmp/sock0,server'/>
+        <qemu:arg value='-device'/>
+        <qemu:arg
+        value='virtio-net-pci,netdev=vhost-net0,mac=52:54:00:12:34:56'/>
+        <qemu:arg value='-netdev'/>
+        <qemu:arg value='vhost-user,id=vhost-net0,chardev=chr0,vhostforce'/>
+        <qemu:arg value='-chardev'/>
+        <qemu:arg value='socket,id=chr1,path=/tmp/sock1,server'/>
+        <qemu:arg value='-device'/>
+        <qemu:arg
+        value='virtio-net-pci,netdev=vhost-net1,mac=52:54:00:12:34:57'/>
+        <qemu:arg value='-netdev'/>
+        <qemu:arg value='vhost-user,id=vhost-net1,chardev=chr1,vhostforce'/>
+      </qemu:commandline>
+    </domain>
diff --git a/docs/guides/spp_vf/gsg/setup.rst b/docs/guides/spp_vf/gsg/setup.rst
index 426033e..f0b8274 100644
--- a/docs/guides/spp_vf/gsg/setup.rst
+++ b/docs/guides/spp_vf/gsg/setup.rst
@@ -62,169 +62,6 @@ PCI number is inspected
     $ sudo $RTE_SDK/usertools/dpdk-devbind.py --bind=igb_uio PCI_NUM
 
 
-.. _spp_vf_gsg_virsh_setup:
-
-virsh setup
------------
-
-First of all, please check version of qemu-kvm.
-
-.. code-block:: console
-
-    $ qemu-system-x86_64 --version
-
-If your system does not have qemu-kvm or the version of qemu is less than 2.7,
-then please install qemu following
-the instruction of https://wiki.qemu.org/index.php/Hosts/Linux
-to install qemu 2.7.
-You may need to install libvirt-bin,
-virtinst, bridge-utils packages via ``apt-get`` install to run
-``virt-install``.
-
-
-``virsh`` is a command line interface that can be used to create, destroy,
-stop start and edit VMs and configure. After create an image file,
-you can setup it with ``virt-install``.
-``--location`` is a URL of installer and it should be
-``http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/``
-for amd64.
-
-.. code-block:: console
-
-   virt-install \
-   --name [VM_NAME] \
-   --ram 4096 \
-   --disk path=/var/lib/libvirt/images/[VM_NAME].img,size=30 \
-   --vcpus 4 \
-   --os-type linux \
-   --os-variant ubuntu16.04 \
-   --network network=default \
-   --graphics none \
-   --console pty,target_type=serial \
-   --location '[LOCATION]' \
-   --extra-args 'console=ttyS0,115200n8 serial'
-
-You may need type the following commands through ssh to activate console.
-
-.. code-block:: console
-
-    $sudo systemctl enable serial-getty@ttyS0.service
-    $sudo systemctl start serial-getty@ttyS0.service
-
-
-Edit VM configuration with virsh.
-
-.. code-block:: console
-
-    $ virsh edit [VM_NAME]
-
-You need to add ``xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'``
-into the domain tag because of adding ``<qemu:commandline>`` tag.
-In addition, you need to add the tag enclosed by ``<memoryBacking>`` and
-``</memoryBacking>``, ``<qemu:commandline>`` and ``</qemu:commandline>``
-because SPP uses vhost-user as interface with VM.
-Note that number used in those tags should be the same value
-(e.g. chr0,sock0,vhost-net0) and these values should correspond
-to "add vhost N" (in this example 0).
-MAC address used in
-``<qemu:arg value='virtio-net-pci,netdev=vhost-net0,mac=52:54:00:12:34:56'/>``
-can be specified when registering MAC address to classifier
-using Secondary command.
-
-        The following is an example of modified xml file:
-
-.. code-block:: xml
-
-    <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
-      <name>spp-vm1</name>
-      <uuid>d90f5420-861a-4479-8559-62d7a1545cb9</uuid>
-      <memory unit='KiB'>4194304</memory>
-      <currentMemory unit='KiB'>4194304</currentMemory>
-      <memoryBacking>
-        <hugepages/>
-      </memoryBacking>
-      <vcpu placement='static'>4</vcpu>
-      <os>
-        <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
-        <boot dev='hd'/>
-      </os>
-      <features>
-        <acpi/>
-        <apic/>
-        <pae/>
-      </features>
-      <clock offset='utc'/>
-      <on_poweroff>destroy</on_poweroff>
-      <on_reboot>restart</on_reboot>
-      <on_crash>restart</on_crash>
-      <devices>
-        <emulator>/usr/local/bin/qemu-system-x86_64</emulator>
-        <disk type='file' device='disk'>
-          <driver name='qemu' type='raw'/>
-          <source file='/var/lib/libvirt/images/spp-vm1.qcow2'/>
-          <target dev='hda' bus='ide'/>
-          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
-        </disk>
-        <disk type='block' device='cdrom'>
-          <driver name='qemu' type='raw'/>
-          <target dev='hdc' bus='ide'/>
-          <readonly/>
-          <address type='drive' controller='0' bus='1' target='0' unit='0'/>
-        </disk>
-        <controller type='usb' index='0'>
-          <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
-          function='0x2'/>
-        </controller>
-        <controller type='pci' index='0' model='pci-root'/>
-        <controller type='ide' index='0'>
-          <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
-          function='0x1'/>
-        </controller>
-        <interface type='network'>
-          <mac address='52:54:00:99:aa:7f'/>
-          <source network='default'/>
-          <model type='rtl8139'/>
-          <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
-          function='0x0'/>
-        </interface>
-        <serial type='pty'>
-          <target type='isa-serial' port='0'/>
-        </serial>
-        <console type='pty'>
-          <target type='serial' port='0'/>
-        </console>
-        <memballoon model='virtio'>
-          <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
-          function='0x0'/>
-        </memballoon>
-      </devices>
-      <qemu:commandline>
-        <qemu:arg value='-cpu'/>
-        <qemu:arg value='host'/>
-        <qemu:arg value='-object'/>
-        <qemu:arg
-        value='memory-backend-file,id=mem,size=4096M,mem-path=/run/hugepages/kvm,share=on'/>
-        <qemu:arg value='-numa'/>
-        <qemu:arg value='node,memdev=mem'/>
-        <qemu:arg value='-mem-prealloc'/>
-        <qemu:arg value='-chardev'/>
-        <qemu:arg value='socket,id=chr0,path=/tmp/sock0,server'/>
-        <qemu:arg value='-device'/>
-        <qemu:arg
-        value='virtio-net-pci,netdev=vhost-net0,mac=52:54:00:12:34:56'/>
-        <qemu:arg value='-netdev'/>
-        <qemu:arg value='vhost-user,id=vhost-net0,chardev=chr0,vhostforce'/>
-        <qemu:arg value='-chardev'/>
-        <qemu:arg value='socket,id=chr1,path=/tmp/sock1,server'/>
-        <qemu:arg value='-device'/>
-        <qemu:arg
-        value='virtio-net-pci,netdev=vhost-net1,mac=52:54:00:12:34:57'/>
-        <qemu:arg value='-netdev'/>
-        <qemu:arg value='vhost-user,id=vhost-net1,chardev=chr1,vhostforce'/>
-      </qemu:commandline>
-    </domain>
-
-
 Setup spp_mirror
 ----------------
 
diff --git a/docs/guides/spp_vf/use_cases/vf_ssh_login.rst b/docs/guides/spp_vf/use_cases/vf_ssh_login.rst
index 719d673..a116a86 100644
--- a/docs/guides/spp_vf/use_cases/vf_ssh_login.rst
+++ b/docs/guides/spp_vf/use_cases/vf_ssh_login.rst
@@ -230,7 +230,7 @@ Setup for VMs
 -------------
 
 Launch VM1 and VM2 with virsh command.
-Setup for virsh is described in :ref:`spp_vf_gsg_virsh_setup`.
+Setup for virsh is described in :ref:`spp_gsg_howto_virsh`.
 
 .. code-block:: console
 
diff --git a/docs/guides/use_cases/spp_nfv.rst b/docs/guides/use_cases/spp_nfv.rst
index 31ca4ea..c4e3f0c 100644
--- a/docs/guides/use_cases/spp_nfv.rst
+++ b/docs/guides/use_cases/spp_nfv.rst
@@ -309,7 +309,7 @@ Vhost PMD
 
 Vhost PMD is an interface for communicating between on hsot and guest VM.
 As described in
-:ref:`How to Use<spp_setup_howto_use>`,
+:ref:`How to Use<spp_gsg_howto_use>`,
 vhost must be created by ``add`` subcommand before the VM is launched.
 
 
@@ -344,7 +344,7 @@ Setup Network Configuration in spp_nfv
 
 Launch a VM by using the vhost interface created in the previous step.
 Lauunching VM is described in
-:ref:`How to Use<spp_setup_howto_use>`.
+:ref:`How to Use<spp_gsg_howto_use>`.
 
 Patch ``phy:0`` to ``vhost:0`` and ``vhost:1`` to ``phy:1`` from ``nfv 1``
 running on host.
-- 
2.7.4

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

* [spp] [PATCH 05/20] docs: move package installation to gsg
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (3 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 04/20] docs: move virsh setup section ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 06/20] docs: move descs of packet copy mode of spp_mirror ogawa.yasufumi
                   ` (14 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This patch is to move instruction for packages installation from
`SPP VF` to `Getting Started Guide`.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/gsg/install.rst      | 14 ++++++++++++--
 docs/guides/spp_vf/gsg/setup.rst | 15 ---------------
 2 files changed, 12 insertions(+), 17 deletions(-)

diff --git a/docs/guides/gsg/install.rst b/docs/guides/gsg/install.rst
index 3bf5246..b44cdaf 100644
--- a/docs/guides/gsg/install.rst
+++ b/docs/guides/gsg/install.rst
@@ -40,15 +40,25 @@ Python and pip are also required if not installed.
     # Python3
     $ sudo apt install python3 python3-pip
 
+Some of secondary processes depend on external libraries and you failed to
+compile SPP without them.
+
 SPP provides libpcap-based PMD for dumping packet to a file or retrieve
 it from the file.
-To use PCAP PMD, install ``libpcap-dev`` and enable it.
+``spp_nfv`` and ``spp_pcap`` use ``libpcap-dev`` for packet capture.
+``spp_pcap`` uses ``liblz4-dev`` and ``liblz4-tool`` to compress PCAP file.
+
+.. code-block:: console
+
+   $ sudo apt install libpcap-dev
+   $ sudo apt install liblz4-dev
+   $ sudo apt install liblz4-tool
+
 ``text2pcap`` is also required for creating pcap file which
 is included in ``wireshark``.
 
 .. code-block:: console
 
-    $ sudo apt install libpcap-dev
     $ sudo apt install wireshark
 
 PCAP is disabled by default in DPDK configuration.
diff --git a/docs/guides/spp_vf/gsg/setup.rst b/docs/guides/spp_vf/gsg/setup.rst
index f0b8274..eebe591 100644
--- a/docs/guides/spp_vf/gsg/setup.rst
+++ b/docs/guides/spp_vf/gsg/setup.rst
@@ -84,18 +84,3 @@ Then, run make command to compile ``spp_mirror``.
 .. code-block:: console
 
    $ make
-
-Setup spp_pcap
---------------
-
-Setup of ``spp_pcap`` is almost the same as :ref:`SPP VF<spp_vf_gsg_setup>`.
-``libpcap-dev`` is  are used by ``spp_pcap`` when capturing and packet,
-so you need to install ``libpcap-dev`` .
-``liblz4-dev`` and ``liblz4-tool`` are used for compression and decompression
-respectively, so you need to install ``liblz4-dev`` and ``liblz4-tool`` .
-
-.. code-block:: console
-
-   $ sudo apt install libpcap-dev
-   $ sudo apt install liblz4-dev
-   $ sudo apt install liblz4-tool
-- 
2.7.4

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

* [spp] [PATCH 06/20] docs: move descs of packet copy mode of spp_mirror
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (4 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 05/20] docs: move package installation to gsg ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 07/20] docs: move usecase of spp_vf ogawa.yasufumi
                   ` (13 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This patch is to move instruction for copy mode of spp_mirror.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/gsg/install.rst      | 35 +++++++++++-----
 docs/guides/gsg/setup.rst        |  2 +-
 docs/guides/spp_vf/gsg/setup.rst | 86 ----------------------------------------
 3 files changed, 26 insertions(+), 97 deletions(-)
 delete mode 100644 docs/guides/spp_vf/gsg/setup.rst

diff --git a/docs/guides/gsg/install.rst b/docs/guides/gsg/install.rst
index b44cdaf..0bb3401 100644
--- a/docs/guides/gsg/install.rst
+++ b/docs/guides/gsg/install.rst
@@ -62,8 +62,8 @@ is included in ``wireshark``.
     $ sudo apt install wireshark
 
 PCAP is disabled by default in DPDK configuration.
-``CONFIG_RTE_LIBRTE_PMD_PCAP`` and ``CONFIG_RTE_PORT_PCAP`` define the
-configuration and enabled it to ``y``.
+``CONFIG_RTE_LIBRTE_PMD_PCAP`` and ``CONFIG_RTE_PORT_PCAP`` defined in
+config file ``common_base`` should be changed to ``y`` to enable PCAP.
 
 .. code-block:: console
 
@@ -85,7 +85,7 @@ Compile DPDK with target environment.
 SPP
 ---
 
-Clone repository and compile SPP in any directory.
+Clone SPP repository and compile it in any directory.
 
 .. code-block:: console
 
@@ -94,15 +94,30 @@ Clone repository and compile SPP in any directory.
     $ cd spp
     $ make  # Confirm that $RTE_SDK and $RTE_TARGET are set
 
-It also required to install Python3 and packages for running python scripts
-as following.
-You might need to run ``pip3`` with ``sudo`` if it is failed.
+If you use ``spp_mirror`` in deep copy mode, you should comment out
+the definition of copy mode in Makefile of ``spp_mirror`` before.
+It is for copying full payload into a new mbuf.
+Default mode is shallow copy.
+
+.. code-block:: console
+
+    # src/mirror/Makefile
+    #CFLAGS += -Dspp_mirror_SHALLOWCOPY
+
+.. note::
+
+    Before run make command, you might need to consider if using deep copy
+    for cloning packets in ``spp_mirror``. Comparing with shallow copy, it
+    clones entire packet payload into a new mbuf and it is modifiable,
+    but lower performance. Which of copy mode should be chosen depends on
+    your usage.
+
+SPP provides ``requirements.txt`` for installing required packages of Python3.
+You might fail to run ``pip3`` without sudo on some environments.
 
 .. code-block:: console
 
     $ sudo apt update
-    $ sudo apt install python3
-    $ sudo apt install python3-pip
     $ pip3 install -r requirements.txt
 
 
@@ -221,8 +236,8 @@ it is very similar to SPP's worker process for forwarding.
 In this case, run this application simply with just two options
 while DPDK has many kinds of options.
 
-  - -l: core list
-  - -p: port mask
+  * ``-l``: core list
+  * ``-p``: port mask
 
 .. code-block:: console
 
diff --git a/docs/guides/gsg/setup.rst b/docs/guides/gsg/setup.rst
index 9e3d17d..d4f9543 100644
--- a/docs/guides/gsg/setup.rst
+++ b/docs/guides/gsg/setup.rst
@@ -137,7 +137,7 @@ You can check the value as following.
 Vhost Client Mode
 -----------------
 
-SPP secondary process supports ``--vhost-client`` options for using vhost port.
+SPP secondary process supports ``--vhost-client`` option for using vhost port.
 In vhost client mode, qemu creates socket file instead of secondary process.
 It means that you can launch a VM before secondary process create vhost port.
 
diff --git a/docs/guides/spp_vf/gsg/setup.rst b/docs/guides/spp_vf/gsg/setup.rst
deleted file mode 100644
index eebe591..0000000
--- a/docs/guides/spp_vf/gsg/setup.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
-
-.. _spp_vf_gsg_setup:
-
-Setup
-=====
-
-Install DPDK
-------------
-
-Install DPDK in any directory. This is a simple instruction and please
-refer
-`Getting Started Guide for Linux
-<http://dpdk.org/doc/guides/linux_gsg/index.html>`_
-for details.
-
-.. code-block:: console
-
-    $ cd /path/to/any_dir
-    $ git clone http://dpdk.org/git/dpdk
-    $ cd dpdk
-    $ git checkout [TAG_NAME(e.g. v17.05)]
-    $ export RTE_SDK=`pwd`
-    $ export RTE_TARGET=x86_64-native-linuxapp-gcc
-    $ make T=x86_64-native-linuxapp-gcc install
-
-
-Install SPP
------------
-
-Clone SPP in any directory and compile it.
-
-.. code-block:: console
-
-    $ cd /path/to/any_dir
-    $ git clone http://dpdk.org/git/apps/spp
-    $ cd spp
-    $ make
-
-Setup for DPDK
---------------
-
-Load igb_uio module.
-
-.. code-block:: console
-
-    $ sudo modprobe uio
-    $ sudo insmod $RTE_SDK/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
-    $ lsmod | grep uio
-    igb_uio                16384  0  # igb_uio is loaded
-    uio                    20480  1 igb_uio
-
-Then, bind your devices with PCI number by using ``dpdk-devbind.py``.
-PCI number is inspected
-
-.. code-block:: console
-
-    # check your device for PCI_Number
-    $ $RTE_SDK/usertools/dpdk-devbind.py --status
-
-    $ sudo $RTE_SDK/usertools/dpdk-devbind.py --bind=igb_uio PCI_NUM
-
-
-Setup spp_mirror
-----------------
-
-Setup of ``spp_mirror`` is almost the same as :ref:`SPP VF<spp_vf_gsg_setup>`.
-Configuration of use of ``shallowcopy`` or ``deepcopy`` is different from
-``spp_vf``.
-It is defined in ``src/mirror/Makefile`` and which of copying is used is
-configured by editing ``CFLAG`` option. It is defined to use ``shallowcopy``
-by default.
-
-If you use ``deepcopy``, comment out the line of ``-Dspp_mirror_SHALLOWCOPY``
-to be disabled.
-
-.. code-block:: c
-
-   #CFLAGS += -Dspp_mirror_SHALLOWCOPY
-
-Then, run make command to compile ``spp_mirror``.
-
-.. code-block:: console
-
-   $ make
-- 
2.7.4

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

* [spp] [PATCH 07/20] docs: move usecase of spp_vf
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (5 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 06/20] docs: move descs of packet copy mode of spp_mirror ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 08/20] docs: update usecase of ssh with spp_vf ogawa.yasufumi
                   ` (12 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is move usecases of spp_vf from `SPP VF` to `Use Cases`.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/spp_vf/gsg/index.rst              |   1 -
 docs/guides/spp_vf/use_cases/index.rst        |   2 -
 docs/guides/spp_vf/use_cases/vf_simple.rst    | 257 ----------
 docs/guides/spp_vf/use_cases/vf_ssh_login.rst | 411 ----------------
 docs/guides/use_cases/index.rst               |   1 +
 docs/guides/use_cases/spp_nfv.rst             |   8 +-
 docs/guides/use_cases/spp_vf.rst              | 643 ++++++++++++++++++++++++++
 7 files changed, 650 insertions(+), 673 deletions(-)
 delete mode 100644 docs/guides/spp_vf/use_cases/vf_simple.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/vf_ssh_login.rst
 create mode 100644 docs/guides/use_cases/spp_vf.rst

diff --git a/docs/guides/spp_vf/gsg/index.rst b/docs/guides/spp_vf/gsg/index.rst
index c0bc0a7..623495f 100644
--- a/docs/guides/spp_vf/gsg/index.rst
+++ b/docs/guides/spp_vf/gsg/index.rst
@@ -7,5 +7,4 @@ Getting Started
 .. toctree::
    :maxdepth: 2
 
-   setup
    howto_use
diff --git a/docs/guides/spp_vf/use_cases/index.rst b/docs/guides/spp_vf/use_cases/index.rst
index c9b5206..8fb2ea4 100644
--- a/docs/guides/spp_vf/use_cases/index.rst
+++ b/docs/guides/spp_vf/use_cases/index.rst
@@ -7,8 +7,6 @@ Use Cases
 .. toctree::
    :maxdepth: 2
 
-   vf_simple
-   vf_ssh_login
    mirror_simple
    mirror_vms
    pcap_simple
diff --git a/docs/guides/spp_vf/use_cases/vf_simple.rst b/docs/guides/spp_vf/use_cases/vf_simple.rst
deleted file mode 100644
index a5627fc..0000000
--- a/docs/guides/spp_vf/use_cases/vf_simple.rst
+++ /dev/null
@@ -1,257 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
-
-.. _spp_vf_use_cases_basic:
-
-Classify and merge ICMP packets
-===============================
-
-This usecase uses two hosts. ``spp_vf`` is running on localhost and remote host
-sends ICMP packet towards localhost to confirm packet from remote host is
-forwarded to remote host by ``spp_vf``. This section describes a usecase for
-L2 Forwarding through ``spp_vf``. To send ICMP echo packet from remote host to
-local host, you use ``ping`` command. Classifier receives incoming packets and
-classify to send to destinations based on MAC address table. Forwarder sends
-packets to merger. Merger aggregates those incoming packets from two forwarders
-and sends to remote host from outgoing port.
-
-Launch SPP Processes
---------------------
-
-Change directory to spp and confirm that it is already compiled.
-
-.. code-block:: console
-
-    $ cd /path/to/spp
-
-Launch ``spp-ctl`` before launching SPP primary and secondary processes.
-You also need to launch ``SPP CLI`` if you use ``spp_vf`` from CLI.
-``-b`` option is for binding IP address to communicate other SPP processes,
-but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` .
-
-.. code-block:: console
-
-    # terminal#1
-    # Launch spp-ctl
-    $ python3 ./src/spp-ctl/spp-ctl -b 127.0.0.1
-
-.. code-block:: console
-
-    # terminal#2
-    # Launch SPP CLI
-    $ python ./src/spp.py -b 127.0.0.1
-
-Then, run ``spp_primary`` on the second core with ``-l 1``.
-
-.. code-block:: console
-
-    # terminal#3
-    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-        -l 1 -n 4 \
-        --socket-mem 512,512 \
-        --huge-dir=/run/hugepages/kvm \
-        --proc-type=primary \
-        -- \
-        -p 0x03 -n 8 -s 127.0.0.1:5555
-
-After ``spp_primary`` is launched, run secondary process ``spp_vf``.
-Core list ``-l 2-6`` indicates to use five cores.
-
-.. code-block:: console
-
-     # terminal#4
-     $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-        -l 2-6 -n 4 --proc-type=secondary \
-        -- \
-        --client-id 1 \
-        -s 127.0.0.1:6666 \
-
-Network Configuration
----------------------
-
-Detailed configuration is described below.
-In this usecase, there are two NICs on host1 and host2 and one NIC
-is used to send packet and the other is used to receive packet.
-
-Incoming packets from NIC0 are classified based on destination address.
-For example, cls1 sends packets to fwd1 and fwd2.
-Outgoing packets are aggregated to mgr1 and sent to host1 via NIC1.
-
-.. _figure_spp_vf_use_cases_nw_config:
-
-.. figure:: ../../images/spp_vf/basic_usecase_vf_nwconfig.*
-    :width: 90%
-
-    Network Configuration
-
-First, launch threads of SPP VF called ``component`` with its CORE_ID
-and a directive for behavior.
-It is launched from ``component`` subcommand with options.
-
-.. code-block:: console
-
-    spp > sec SEC_ID; component start NAME CORE_ID BEHAVIOUR
-
-In this usecase, ``spp_vf`` is launched with ``SEC_ID`` 1.
-Let's start components for the first login path.
-``BEHAVIOUR`` for classifier ``classifier_mac`` means to classify with MAC
-address.
-``CORE_ID`` is the ID of the core that is assigned for each component.
-In this example, ``CORE_ID`` from 3 to 6 are assigned as following.
-
-.. code-block:: console
-
-    # Start component to spp_vf
-    spp > vf 1; component start cls1 3 classifier_mac
-    spp > vf 1; component start fwd1 4 forward
-    spp > vf 1; component start fwd2 5 forward
-    spp > vf 1; component start mgr1 6 merge
-
-Each of components must have rx and tx ports.
-Number of tx port and rx port are different among components.
-Add ports for each of components as following.
-You might notice that classifier has two tx ports and merger has two rx ports.
-
-.. code-block:: console
-
-    # cls1
-    spp > vf 1; port add phy:0 rx cls1
-    spp > vf 1; port add ring:0 tx cls1
-    spp > vf 1; port add ring:1 tx cls1
-
-    # fwd1
-    spp > vf 1; port add ring:0 rx fwd1
-    spp > vf 1; port add ring:2 tx fwd1
-
-    # fwd2
-    spp > vf 1; port add ring:1 rx fwd2
-    spp > vf 1; port add ring:3 tx fwd2
-
-    # mgr1
-    spp > vf 1; port add ring:2 rx mgr1
-    spp > vf 1; port add ring:3 rx mgr1
-    spp > vf 1; port add phy:1 tx mgr1
-
-As given ``classifier_mac``, classifier component decides
-the destination with MAC address by referring ``classifier_table``.
-MAC address and corresponding port is registered to the table with
-``classifier_table add mac`` command.
-
-.. code-block:: console
-
-    spp > vf SEC_ID; classifier_table add mac MAC_ADDR RES_UID
-
-In this usecase, you need to register two MAC addresses. Although
-any MAC address can be used, you assign ``52:54:00:12:34:56``
-and ``52:54:00:12:34:58`` for each port in this example.
-
-.. code-block:: console
-
-    # Register MAC address to classifier
-    spp > vf 1; classifier_table add mac 52:54:00:12:34:56 ring:0
-    spp > vf 1; classifier_table add mac 52:54:00:12:34:58 ring:1
-
-Send packet from host1
-----------------------
-
-Configure IP address of ``ens0`` and add arp entry for two MAC
-addresses statically to resolve address.
-
-.. code-block:: console
-
-    # terminal#1 at host1
-    # configure ip address of ens0
-    $ sudo ifconfig ens0 192.168.140.1 255.255.255.0 up
-
-    # set MAC address
-    $ sudo arp -i ens0 -s 192.168.140.2 52:54:00:12:34:56
-    $ sudo arp -i ens0 -s 192.168.140.3 52:54:00:12:34:58
-
-Start capture on ``ens1``.
-You can see ICMP Echo request received when ping is executed.
-
-.. code-block:: console
-
-    # terminal#2 at host1
-    # capture on ens1
-    $ sudo tcpdump -i ens1
-
-Start ping on different terminals to send ICMP Echo request.
-
-.. code-block:: console
-
-    # terminal#3 at host1
-    # ping via NIC0
-    $ ping 192.168.140.2
-
-.. code-block:: console
-
-    # terminal#4 at host1
-    # ping via NIC0
-    $ ping 192.168.140.3
-
-.. _spp_vf_use_cases_shutdown_comps:
-
-Shutdown spp_vf Components
---------------------------
-
-Basically, you can shutdown all the SPP processes with bye all command.
-However there is a case when user want to shutdown specific secondary process
-only.
-This section describes such a shutting down process for SPP VF components.
-
-First, delete entries of ``classifier_table`` and ports of components.
-
-.. code-block:: console
-
-    # Delete MAC address from Classifier
-    spp > vf 1; classifier_table del mac 52:54:00:12:34:56 ring:0
-    spp > vf 1; classifier_table del mac 52:54:00:12:34:58 ring:1
-
-.. code-block:: console
-
-    # cls1
-    spp > vf 1; port del phy:0 rx cls1
-    spp > vf 1; port del ring:0 tx cls1
-    spp > vf 1; port del ring:1 tx cls1
-
-    # fwd1
-    spp > vf 1; port del ring:0 rx fwd1
-    spp > vf 1; port del vhost:0 tx fwd1
-
-    # fwd2
-    spp > vf 1; port del ring:1 rx fwd2
-    spp > vf 1; port del vhost:2 tx fwd2
-
-    # mgr1
-    spp > vf 1; port del ring:2 rx mgr1
-    spp > vf 1; port del ring:3 rx mgr1
-    spp > vf 1; port del phy:0 tx mgr1
-
-Then, stop components.
-
-.. code-block:: console
-
-    # Stop component to spp_vf
-    spp > vf 1; component stop cls1
-    spp > vf 1; component stop fwd1
-    spp > vf 1; component stop fwd2
-    spp > vf 1; component stop mgr1
-
-    spp > vf 1; status
-    Basic Information:
-      - client-id: 1
-      - ports: [phy:0, phy:1]
-    Classifier Table:
-      No entries.
-    Components:
-      - core:3 '' (type: unuse)
-      - core:4 '' (type: unuse)
-      - core:5 '' (type: unuse)
-      - core:6 '' (type: unuse)
-
-Finally, terminate spp_vf to finish this usecase.
-
-.. code-block:: console
-
-    spp > vf 0; exit
diff --git a/docs/guides/spp_vf/use_cases/vf_ssh_login.rst b/docs/guides/spp_vf/use_cases/vf_ssh_login.rst
deleted file mode 100644
index a116a86..0000000
--- a/docs/guides/spp_vf/use_cases/vf_ssh_login.rst
+++ /dev/null
@@ -1,411 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-.. _spp_vf_use_cases_usecase1:
-
-Simple SSH Login
-================
-
-This section describes a usecase for simple SSH login through SPP VF.
-Incoming packets are classified based on destination addresses defined
-in ``classifier``.
-Reterned packets are aggregated to ``merger`` to send it an outgoing
-port.
-
-.. _figure_simple_ssh_login:
-
-.. figure:: ../../images/spp_vf/usecase1_overview.*
-    :width: 55%
-
-    Simple SSH Login
-
-
-Launch SPP Processes
---------------------
-
-Change directory to spp and confirm that it is already compiled.
-
-.. code-block:: console
-
-    $ cd /path/to/spp
-
-Launch ``spp-ctl`` before launching SPP primary and secondary processes.
-You also need to launch ``spp.py``  if you use ``spp_vf`` from CLI.
-``-b`` option is for binding IP address to communicate other SPP processes,
-but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` although
-doing explicitly in this example to be more understandable.
-
-.. code-block:: console
-
-    # Launch spp-ctl and spp.py
-    $ python3 ./src/spp-ctl/spp-ctl -b 127.0.0.1
-    $ python ./src/spp.py -b 127.0.0.1
-
-Then, run ``spp_primary`` on the second core with ``-c 0x02``.
-
-.. code-block:: console
-
-    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-        -c 0x02 -n 4 \
-        --socket-mem 512,512 \
-        --huge-dir=/run/hugepages/kvm \
-        --proc-type=primary \
-        -- \
-        -p 0x03 -n 8 -s 127.0.0.1:5555
-
-After ``spp_primary`` is launched, run secondary process ``spp_vf``.
-Core mask ``-c 0x3ffd`` indicates to use twelve cores except the second
-core, and it equals to ``-l 0,2-12``.
-
-.. code-block:: console
-
-    $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-        -c 0x3ffd -n 4 --proc-type=secondary \
-        -- \
-        --client-id 1 \
-        -s 127.0.0.1:6666 \
-        --vhost-client
-
-
-Network Configuration
----------------------
-
-Detailed configuration of :numref:`figure_simple_ssh_login` is
-described below.
-In this usecase, there are two NICs on host1 and host2 to duplicate
-login path. Each of combination of classifier and merger responds
-to each of pathes.
-
-Incoming packets from NIC0 are classified based on destionation address.
-For example, classifier1 sends packets to forwarder1 for vNIC0 and
-to forwarder2 for vNIC2.
-Outgoing packets from SSH server1 and 2 are aggregated to merger1 and
-sent to SSH clinet via NIC0.
-
-.. _figure_network_config:
-
-.. figure:: ../../images/spp_vf/usecase1_nwconfig.*
-    :width: 100%
-
-    Network Configuration
-
-You need to input a little bit large amount of commands for the
-configuration, or use ``playback`` command to load from config files.
-You can find a series of config files for this use case in
-``recipes/spp_vf/usecase1/``.
-
-First, lanch threads of SPP VF called ``component`` with its core ID
-and a directive for behaviour.
-It is launched from ``component`` subcommand with options.
-
-.. code-block:: console
-
-    spp > sec SEC_ID; component start NAME CORE_ID BEHAVIOUR
-
-In this usecase, spp_vf is launched with ID=1. Let's start components
-for the first login path.
-Directive for classifier ``classifier_mac`` means to classify with MAC
-address.
-Core ID from 2 to 7 are assigned to each of components.
-
-.. code-block:: console
-
-    # Start component to spp_vf
-    spp > vf 1; component start classifier1 2 classifier_mac
-    spp > vf 1; component start forwarder1 3 forward
-    spp > vf 1; component start forwarder2 4 forward
-    spp > vf 1; component start forwarder3 5 forward
-    spp > vf 1; component start forwarder4 6 forward
-    spp > vf 1; component start merger1 7 merge
-
-Each of components must have rx and tx ports for forwarding.
-Add ports for each of components as following.
-You might notice that classifier has two tx ports and
-merger has two rx ports.
-
-.. code-block:: console
-
-    # classifier1
-    spp > vf 1; port add phy:0 rx classifier1
-    spp > vf 1; port add ring:0 tx classifier1
-    spp > vf 1; port add ring:1 tx classifier1
-
-    # forwarder1
-    spp > vf 1; port add ring:0 rx forwarder1
-    spp > vf 1; port add vhost:0 tx forwarder1
-
-    # forwarder2
-    spp > vf 1; port add ring:1 rx forwarder2
-    spp > vf 1; port add vhost:2 tx forwarder2
-
-    # forwarder3
-    spp > vf 1; port add vhost:0 rx forwarder3
-    spp > vf 1; port add ring:2 tx forwarder3
-
-    # forwarder4
-    spp > vf 1; port add vhost:2 rx forwarder4
-    spp > vf 1; port add ring:3 tx forwarder4
-
-    # merger1
-    spp > vf 1; port add ring:2 rx merger1
-    spp > vf 1; port add ring:3 rx merger1
-    spp > vf 1; port add phy:0 tx merger1
-
-As given ``classifier_mac``, classifier component decides
-the destination with MAC address by referring ``classifier_table``.
-MAC address and corresponging port is registered to the table with
-``classifier_table add mac`` command.
-
-.. code-block:: console
-
-    spp > vf SEC_ID; classifier_table add mac MAC_ADDR PORT
-
-In this usecase, you need to register two MAC addresses of targetting VM
-for merger1.
-
-.. code-block:: console
-
-    # Register MAC address to classifier
-    spp > vf 1; classifier_table add mac 52:54:00:12:34:56 ring:0
-    spp > vf 1; classifier_table add mac 52:54:00:12:34:58 ring:1
-
-
-Configuration for the second login path is almost similar to the first
-path.
-
-Start components with core ID 8-13 and directives.
-
-.. code-block:: console
-
-    spp > vf 1; component start classifier2 8 classifier_mac
-    spp > vf 1; component start forwarder5 9 forward
-    spp > vf 1; component start forwarder6 10 forward
-    spp > vf 1; component start forwarder7 11 forward
-    spp > vf 1; component start forwarder8 12 forward
-    spp > vf 1; component start merger2 13 merge
-
-Add ports to each of components.
-
-.. code-block:: console
-
-    # classifier2
-    spp > vf 1; port add phy:1 rx classifier2
-    spp > vf 1; port add ring:4 tx classifier2
-    spp > vf 1; port add ring:5 tx classifier2
-
-    # forwarder5
-    spp > vf 1; port add ring:4 rx forwarder5
-    spp > vf 1; port add vhost:1 tx forwarder5
-
-    # forwarder6
-    spp > vf 1; port add ring:5 rx forwarder6
-    spp > vf 1; port add vhost:3 tx forwarder6
-
-    # forwarder7
-    spp > vf 1; port add vhost:1 rx forwarder7
-    spp > vf 1; port add ring:6 tx forwarder7
-
-    # forwarder8
-    spp > vf 1; port add vhost:3 rx forwarder8
-    spp > vf 1; port add ring:7 tx forwarder8
-
-    # merger2
-    spp > vf 1; port add ring:6 rx merger2
-    spp > vf 1; port add ring:7 rx merger2
-    spp > vf 1; port add phy:1 tx merger2
-
-Register entries to classifier_table for classifier2 with MAC address
-of targetting VM..
-
-.. code-block:: console
-
-    # Register MAC address to classifier
-    spp > vf 1; classifier_table add mac 52:54:00:12:34:57 ring:4
-    spp > vf 1; classifier_table add mac 52:54:00:12:34:59 ring:5
-
-
-.. _spp_vf_use_cases_usecase1_setup_vm:
-
-Setup for VMs
--------------
-
-Launch VM1 and VM2 with virsh command.
-Setup for virsh is described in :ref:`spp_gsg_howto_virsh`.
-
-.. code-block:: console
-
-    $ virsh start spp-vm1  # VM1
-    $ virsh start spp-vm2  # VM2
-
-After launched, login to ``spp-vm1`` for configuration inside the VM.
-
-.. note::
-
-    To avoid asked for unknown keys while login VMs,
-    use ``-oStrictHostKeyChecking=no`` option for ssh.
-
-    .. code-block:: console
-
-        $ ssh -oStrictHostKeyChecking=no sppuser at 192.168.122.31
-
-Up interfaces for vhost inside ``spp-vm1``.
-In addition, you have to disable TCP offload function, or ssh is failed
-after configuration is done.
-
-.. code-block:: console
-
-    # up interfaces
-    $ sudo ifconfig ens4 inet 192.168.140.21 netmask 255.255.255.0 up
-    $ sudo ifconfig ens5 inet 192.168.150.22 netmask 255.255.255.0 up
-
-    # disable TCP offload
-    $ sudo ethtool -K ens4 tx off
-    $ sudo ethtool -K ens5 tx off
-
-Configurations also for ``spp-vm2`` as ``spp-vm1``.
-
-.. code-block:: console
-
-    # up interfaces
-    $ sudo ifconfig ens4 inet 192.168.140.31 netmask 255.255.255.0 up
-    $ sudo ifconfig ens5 inet 192.168.150.32 netmask 255.255.255.0 up
-
-    # disable TCP offload
-    $ sudo ethtool -K ens4 tx off
-    $ sudo ethtool -K ens5 tx off
-
-
-Login to VMs
-------------
-
-Now, you can login to VMs from the remote host1.
-
-.. code-block:: console
-
-    # spp-vm1 via NIC0
-    $ ssh sppuser@192.168.140.21
-
-    # spp-vm1 via NIC1
-    $ ssh sppuser@192.168.150.22
-
-    # spp-vm2 via NIC0
-    $ ssh sppuser@192.168.140.31
-
-    # spp-vm2 via NIC1
-    $ ssh sppuser@192.168.150.32
-
-
-.. _spp_vf_use_cases_usecase1_shutdown_spp_vf_components:
-
-Shutdown spp_vf Components
---------------------------
-
-Basically, you can shutdown all of SPP processes with ``bye all``
-command.
-This section describes graceful shutting down for SPP VF components.
-
-First, delete entries of ``classifier_table`` and ports of components
-for the first SSH login path.
-
-.. code-block:: console
-
-    # Delete MAC address from Classifier
-    spp > vf 1; classifier_table del mac 52:54:00:12:34:56 ring:0
-    spp > vf 1; classifier_table del mac 52:54:00:12:34:58 ring:1
-
-.. code-block:: console
-
-    # classifier1
-    spp > vf 1; port del phy:0 rx classifier1
-    spp > vf 1; port del ring:0 tx classifier1
-    spp > vf 1; port del ring:1 tx classifier1
-    # forwarder1
-    spp > vf 1; port del ring:0 rx forwarder1
-    spp > vf 1; port del vhost:0 tx forwarder1
-    # forwarder2
-    spp > vf 1; port del ring:1 rx forwarder2
-    spp > vf 1; port del vhost:2 tx forwarder2
-
-    # forwarder3
-    spp > vf 1; port del vhost:0 rx forwarder3
-    spp > vf 1; port del ring:2 tx forwarder3
-
-    # forwarder4
-    spp > vf 1; port del vhost:2 rx forwarder4
-    spp > vf 1; port del ring:3 tx forwarder4
-
-    # merger1
-    spp > vf 1; port del ring:2 rx merger1
-    spp > vf 1; port del ring:3 rx merger1
-    spp > vf 1; port del phy:0 tx merger1
-
-Then, stop components.
-
-.. code-block:: console
-
-    # Stop component to spp_vf
-    spp > vf 1; component stop classifier1
-    spp > vf 1; component stop forwarder1
-    spp > vf 1; component stop forwarder2
-    spp > vf 1; component stop forwarder3
-    spp > vf 1; component stop forwarder4
-    spp > vf 1; component stop merger1
-
-Second, do termination for the second path.
-Delete entries from ``classifier_table`` and ports from each of
-components.
-
-.. code-block:: console
-
-    # Delete MAC address from Classifier
-    spp > vf 1; classifier_table del mac 52:54:00:12:34:57 ring:4
-    spp > vf 1; classifier_table del mac 52:54:00:12:34:59 ring:5
-
-.. code-block:: console
-
-    # classifier2
-    spp > vf 1; port del phy:1 rx classifier2
-    spp > vf 1; port del ring:4 tx classifier2
-    spp > vf 1; port del ring:5 tx classifier2
-
-    # forwarder5
-    spp > vf 1; port del ring:4 rx forwarder5
-    spp > vf 1; port del vhost:1 tx forwarder5
-
-    # forwarder6
-    spp > vf 1; port del ring:5 rx forwarder6
-    spp > vf 1; port del vhost:3 tx forwarder6
-
-    # forwarder7
-    spp > vf 1; port del vhost:1 rx forwarder7
-    spp > vf 1; port del ring:6 tx forwarder7
-
-    # forwarder8
-    spp > vf 1; port del vhost:3 tx forwarder8
-    spp > vf 1; port del ring:7 rx forwarder8
-
-    # merger2
-    spp > vf 1; port del ring:6 rx merger2
-    spp > vf 1; port del ring:7 rx merger2
-    spp > vf 1; port del phy:1 tx merger2
-
-Then, stop components.
-
-.. code-block:: console
-
-    # Stop component to spp_vf
-    spp > vf 1; component stop classifier2
-    spp > vf 1; component stop forwarder5
-    spp > vf 1; component stop forwarder6
-    spp > vf 1; component stop forwarder7
-    spp > vf 1; component stop forwarder8
-    spp > vf 1; component stop merger2
-
-Exit spp_vf
------------
-
-Terminate spp_vf.
-
-.. code-block:: console
-
-    spp > vf 1; exit
diff --git a/docs/guides/use_cases/index.rst b/docs/guides/use_cases/index.rst
index 22c946b..cacf563 100644
--- a/docs/guides/use_cases/index.rst
+++ b/docs/guides/use_cases/index.rst
@@ -9,4 +9,5 @@ Use Cases
    :numbered:
 
    spp_nfv
+   spp_vf
    multi_nodes
diff --git a/docs/guides/use_cases/spp_nfv.rst b/docs/guides/use_cases/spp_nfv.rst
index c4e3f0c..3c493fb 100644
--- a/docs/guides/use_cases/spp_nfv.rst
+++ b/docs/guides/use_cases/spp_nfv.rst
@@ -2,10 +2,14 @@
     Copyright(c) 2010-2014 Intel Corporation
     Copyright(c) 2017-2019 Nippon Telegraph and Telephone Corporation
 
+
+.. _spp_usecases_nfv:
+
 spp_nfv
 =======
 
-.. _single_spp_nfv:
+
+.. _spp_usecases_nfv_single_spp_nfv:
 
 Single spp_nfv
 --------------
@@ -102,7 +106,7 @@ 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>`
+:ref:`Single spp_nfv<spp_usecases_nfv_single_spp_nfv>`
 usecase because bi-directional forwarding of single ``spp_nfv`` is shared
 with two of uni-directional forwarding between dual ``spp_nfv``.
 
diff --git a/docs/guides/use_cases/spp_vf.rst b/docs/guides/use_cases/spp_vf.rst
new file mode 100644
index 0000000..90412f9
--- /dev/null
+++ b/docs/guides/use_cases/spp_vf.rst
@@ -0,0 +1,643 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2017-2019 Nippon Telegraph and Telephone Corporation
+
+
+.. _spp_usecases_vf:
+
+spp_vf
+======
+
+``spp_vf`` is a secondary process for providing L2 classification as a simple
+pusedo SR-IOV features.
+
+.. _spp_usecases_vf_cls_icmp:
+
+Classify ICMP Packets
+---------------------
+
+To confirm classifying packets, sends ICMP packet from remote node by using
+ping and watch the response.
+Incoming packets through ``NIC0`` are classified based on destination address.
+
+.. _figure_spp_vf_use_cases_nw_config:
+
+.. figure:: ../images/spp_vf/basic_usecase_vf_nwconfig.*
+    :width: 90%
+
+    Network Configuration
+
+
+Setup
+~~~~~
+
+Launch ``spp-ctl`` and SPP CLI before primary and secondary processes.
+
+.. code-block:: console
+
+    # terminal 1
+    $ python3 ./src/spp-ctl/spp-ctl -b 192.168.1.100
+
+.. code-block:: console
+
+    # terminal 2
+    $ python ./src/spp.py -b 192.168.1.100
+
+``spp_primary`` on the second lcore with ``-l 1`` and two ports ``-p 0x03``.
+
+.. code-block:: console
+
+    # terminal 3
+    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+        -l 1 -n 4 \
+        --socket-mem 512,512 \
+        --huge-dir=/run/hugepages/kvm \
+        --proc-type=primary \
+        -- \
+        -p 0x03 \
+        -n 10 -s 127.0.0.1:5555
+
+After ``spp_primary`` is launched, run secondary process ``spp_vf``.
+In this case, lcore options is ``-l 2-6`` for one master thread and four
+worker threads.
+
+.. code-block:: console
+
+     # terminal 4
+     $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
+        -l 2-6 \
+        -n 4 --proc-type=secondary \
+        -- \
+        --client-id 1 \
+        -s 127.0.0.1:6666 \
+
+
+Network Configuration
+~~~~~~~~~~~~~~~~~~~~~
+
+Configure network as described in :numref:`figure_spp_vf_use_cases_nw_config`
+step by step.
+
+First of all, setup worker threads from ``component`` command with lcore ID
+and other options on local host ``host2``.
+
+.. code-block:: console
+
+    # terminal 2
+    spp > vf 1; component start cls 3 classifier_mac
+    spp > vf 1; component start fwd1 4 forward
+    spp > vf 1; component start fwd2 5 forward
+    spp > vf 1; component start mgr 6 merge
+
+Add ports for each of components as following.
+The number of rx and tx ports are different for each of component's role.
+
+.. code-block:: console
+
+    # terminal 2
+
+    # classifier
+    spp > vf 1; port add phy:0 rx cls
+    spp > vf 1; port add ring:0 tx cls
+    spp > vf 1; port add ring:1 tx cls
+
+    # forwarders
+    spp > vf 1; port add ring:0 rx fwd1
+    spp > vf 1; port add ring:2 tx fwd1
+    spp > vf 1; port add ring:1 rx fwd2
+    spp > vf 1; port add ring:3 tx fwd2
+
+    # merger
+    spp > vf 1; port add ring:2 rx mgr
+    spp > vf 1; port add ring:3 rx mgr
+    spp > vf 1; port add phy:1 tx mgr
+
+You also need to configure MAC address table for classifier. In this case,
+you need to register two MAC addresses. Although any MAC can be used,
+you use ``52:54:00:12:34:56`` and ``52:54:00:12:34:58``.
+
+.. code-block:: console
+
+    # terminal 2
+    spp > vf 1; classifier_table add mac 52:54:00:12:34:56 ring:0
+    spp > vf 1; classifier_table add mac 52:54:00:12:34:58 ring:1
+
+
+Send Packet from Remote Host
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Ensure NICs, ``ens0`` and ``ens1`` in this case, are upped on remote host
+``host1``. You can up by using ifconfig if the status is down.
+
+.. code-block:: console
+
+    # terminal 1 on remote host
+    # Configure ip address of ens0
+    $ sudo ifconfig ens0 192.168.140.1 255.255.255.0 up
+
+Add arp entries of MAC addresses statically to be resolved.
+
+.. code-block:: console
+
+    # terminal 1 on remote host
+    # set MAC address
+    $ sudo arp -i ens0 -s 192.168.140.2 52:54:00:12:34:56
+    $ sudo arp -i ens0 -s 192.168.140.3 52:54:00:12:34:58
+
+Start tcpdump command for capturing ``ens1``.
+
+.. code-block:: console
+
+    # terminal 2 on remote host
+    $ sudo tcpdump -i ens1
+
+Then, start ping in other terminals.
+
+.. code-block:: console
+
+    # terminal 3 on remote host
+    # ping via NIC0
+    $ ping 192.168.140.2
+
+.. code-block:: console
+
+    # terminal 4 on remote host
+    # ping via NIC0
+    $ ping 192.168.140.3
+
+You can see ICMP Echo requests are received from ping on terminal 2.
+
+
+.. _spp_vf_use_cases_shutdown_comps:
+
+Shutdown spp_vf Components
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+First, delete entries of ``classifier_table`` and ports of components.
+
+.. code-block:: console
+
+    # terminal 2
+    # Delete MAC address from Classifier
+    spp > vf 1; classifier_table del mac 52:54:00:12:34:56 ring:0
+    spp > vf 1; classifier_table del mac 52:54:00:12:34:58 ring:1
+
+.. code-block:: console
+
+    # terminal 2
+    # classifier
+    spp > vf 1; port del phy:0 rx cls
+    spp > vf 1; port del ring:0 tx cls
+    spp > vf 1; port del ring:1 tx cls
+
+    # forwarders
+    spp > vf 1; port del ring:0 rx fwd1
+    spp > vf 1; port del vhost:0 tx fwd1
+    spp > vf 1; port del ring:1 rx fwd2
+    spp > vf 1; port del vhost:2 tx fwd2
+
+    # mergers
+    spp > vf 1; port del ring:2 rx mgr
+    spp > vf 1; port del ring:3 rx mgr
+    spp > vf 1; port del phy:0 tx mgr
+
+Then, stop components.
+
+.. code-block:: console
+
+    # terminal 2
+    spp > vf 1; component stop cls
+    spp > vf 1; component stop fwd1
+    spp > vf 1; component stop fwd2
+    spp > vf 1; component stop mgr
+
+You can confirm that worker threads are cleaned from ``status``.
+
+.. code-block:: none
+
+    spp > vf 1; status
+    Basic Information:
+      - client-id: 1
+      - ports: [phy:0, phy:1]
+    Classifier Table:
+      No entries.
+    Components:
+      - core:3 '' (type: unuse)
+      - core:4 '' (type: unuse)
+      - core:5 '' (type: unuse)
+      - core:6 '' (type: unuse)
+
+Finally, terminate ``spp_vf`` by using ``exit`` or ``bye sec``.
+
+.. code-block:: console
+
+    spp > vf 0; exit
+
+
+.. _spp_vf_use_cases_usecase1:
+
+Simple SSH Login
+----------------
+
+This section describes a usecase for simple SSH login through SPP VF.
+Incoming packets are classified based on destination addresses defined
+in ``classifier``.
+Reterned packets are aggregated to ``merger`` to send it an outgoing
+port.
+
+.. _figure_simple_ssh_login:
+
+.. figure:: ../images/spp_vf/usecase1_overview.*
+    :width: 55%
+
+    Simple SSH Login
+
+
+Launch SPP Processes
+~~~~~~~~~~~~~~~~~~~~
+
+Change directory to spp and confirm that it is already compiled.
+
+.. code-block:: console
+
+    $ cd /path/to/spp
+
+Launch ``spp-ctl`` before launching SPP primary and secondary processes.
+You also need to launch ``spp.py``  if you use ``spp_vf`` from CLI.
+``-b`` option is for binding IP address to communicate other SPP processes,
+but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` although
+doing explicitly in this example to be more understandable.
+
+.. code-block:: console
+
+    # Launch spp-ctl and spp.py
+    $ python3 ./src/spp-ctl/spp-ctl -b 127.0.0.1
+    $ python ./src/spp.py -b 127.0.0.1
+
+Then, run ``spp_primary`` on the second core with ``-c 0x02``.
+
+.. code-block:: console
+
+    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+        -c 0x02 -n 4 \
+        --socket-mem 512,512 \
+        --huge-dir=/run/hugepages/kvm \
+        --proc-type=primary \
+        -- \
+        -p 0x03 -n 8 -s 127.0.0.1:5555
+
+After ``spp_primary`` is launched, run secondary process ``spp_vf``.
+Core mask ``-c 0x3ffd`` indicates to use twelve cores except the second
+core, and it equals to ``-l 0,2-12``.
+
+.. code-block:: console
+
+    $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
+        -c 0x3ffd -n 4 --proc-type=secondary \
+        -- \
+        --client-id 1 \
+        -s 127.0.0.1:6666 \
+        --vhost-client
+
+
+Network Configuration
+~~~~~~~~~~~~~~~~~~~~~
+
+Detailed configuration of :numref:`figure_simple_ssh_login` is
+described below.
+In this usecase, there are two NICs on host1 and host2 to duplicate
+login path. Each of combination of classifier and merger responds
+to each of pathes.
+
+Incoming packets from NIC0 are classified based on destionation address.
+For example, classifier1 sends packets to forwarder1 for vNIC0 and
+to forwarder2 for vNIC2.
+Outgoing packets from SSH server1 and 2 are aggregated to merger1 and
+sent to SSH clinet via NIC0.
+
+.. _figure_network_config:
+
+.. figure:: ../images/spp_vf/usecase1_nwconfig.*
+    :width: 100%
+
+    Network Configuration
+
+You need to input a little bit large amount of commands for the
+configuration, or use ``playback`` command to load from config files.
+You can find a series of config files for this use case in
+``recipes/spp_vf/usecase1/``.
+
+First, lanch threads of SPP VF called ``component`` with its core ID
+and a directive for behaviour.
+It is launched from ``component`` subcommand with options.
+
+.. code-block:: console
+
+    spp > sec SEC_ID; component start NAME CORE_ID BEHAVIOUR
+
+In this usecase, spp_vf is launched with ID=1. Let's start components
+for the first login path.
+Directive for classifier ``classifier_mac`` means to classify with MAC
+address.
+Core ID from 2 to 7 are assigned to each of components.
+
+.. code-block:: console
+
+    # Start component to spp_vf
+    spp > vf 1; component start classifier1 2 classifier_mac
+    spp > vf 1; component start forwarder1 3 forward
+    spp > vf 1; component start forwarder2 4 forward
+    spp > vf 1; component start forwarder3 5 forward
+    spp > vf 1; component start forwarder4 6 forward
+    spp > vf 1; component start merger1 7 merge
+
+Each of components must have rx and tx ports for forwarding.
+Add ports for each of components as following.
+You might notice that classifier has two tx ports and
+merger has two rx ports.
+
+.. code-block:: console
+
+    # classifier1
+    spp > vf 1; port add phy:0 rx classifier1
+    spp > vf 1; port add ring:0 tx classifier1
+    spp > vf 1; port add ring:1 tx classifier1
+
+    # forwarder1
+    spp > vf 1; port add ring:0 rx forwarder1
+    spp > vf 1; port add vhost:0 tx forwarder1
+
+    # forwarder2
+    spp > vf 1; port add ring:1 rx forwarder2
+    spp > vf 1; port add vhost:2 tx forwarder2
+
+    # forwarder3
+    spp > vf 1; port add vhost:0 rx forwarder3
+    spp > vf 1; port add ring:2 tx forwarder3
+
+    # forwarder4
+    spp > vf 1; port add vhost:2 rx forwarder4
+    spp > vf 1; port add ring:3 tx forwarder4
+
+    # merger1
+    spp > vf 1; port add ring:2 rx merger1
+    spp > vf 1; port add ring:3 rx merger1
+    spp > vf 1; port add phy:0 tx merger1
+
+As given ``classifier_mac``, classifier component decides
+the destination with MAC address by referring ``classifier_table``.
+MAC address and corresponging port is registered to the table with
+``classifier_table add mac`` command.
+
+.. code-block:: console
+
+    spp > vf SEC_ID; classifier_table add mac MAC_ADDR PORT
+
+In this usecase, you need to register two MAC addresses of targetting VM
+for merger1.
+
+.. code-block:: console
+
+    # Register MAC address to classifier
+    spp > vf 1; classifier_table add mac 52:54:00:12:34:56 ring:0
+    spp > vf 1; classifier_table add mac 52:54:00:12:34:58 ring:1
+
+
+Configuration for the second login path is almost similar to the first
+path.
+
+Start components with core ID 8-13 and directives.
+
+.. code-block:: console
+
+    spp > vf 1; component start classifier2 8 classifier_mac
+    spp > vf 1; component start forwarder5 9 forward
+    spp > vf 1; component start forwarder6 10 forward
+    spp > vf 1; component start forwarder7 11 forward
+    spp > vf 1; component start forwarder8 12 forward
+    spp > vf 1; component start merger2 13 merge
+
+Add ports to each of components.
+
+.. code-block:: console
+
+    # classifier2
+    spp > vf 1; port add phy:1 rx classifier2
+    spp > vf 1; port add ring:4 tx classifier2
+    spp > vf 1; port add ring:5 tx classifier2
+
+    # forwarder5
+    spp > vf 1; port add ring:4 rx forwarder5
+    spp > vf 1; port add vhost:1 tx forwarder5
+
+    # forwarder6
+    spp > vf 1; port add ring:5 rx forwarder6
+    spp > vf 1; port add vhost:3 tx forwarder6
+
+    # forwarder7
+    spp > vf 1; port add vhost:1 rx forwarder7
+    spp > vf 1; port add ring:6 tx forwarder7
+
+    # forwarder8
+    spp > vf 1; port add vhost:3 rx forwarder8
+    spp > vf 1; port add ring:7 tx forwarder8
+
+    # merger2
+    spp > vf 1; port add ring:6 rx merger2
+    spp > vf 1; port add ring:7 rx merger2
+    spp > vf 1; port add phy:1 tx merger2
+
+Register entries to classifier_table for classifier2 with MAC address
+of targetting VM..
+
+.. code-block:: console
+
+    # Register MAC address to classifier
+    spp > vf 1; classifier_table add mac 52:54:00:12:34:57 ring:4
+    spp > vf 1; classifier_table add mac 52:54:00:12:34:59 ring:5
+
+
+.. _spp_vf_use_cases_usecase1_setup_vm:
+
+Setup for VMs
+~~~~~~~~~~~~~
+
+Launch VM1 and VM2 with virsh command.
+Setup for virsh is described in :ref:`spp_gsg_howto_virsh`.
+
+.. code-block:: console
+
+    $ virsh start spp-vm1  # VM1
+    $ virsh start spp-vm2  # VM2
+
+After launched, login to ``spp-vm1`` for configuration inside the VM.
+
+.. note::
+
+    To avoid asked for unknown keys while login VMs,
+    use ``-oStrictHostKeyChecking=no`` option for ssh.
+
+    .. code-block:: console
+
+        $ ssh -oStrictHostKeyChecking=no sppuser at 192.168.122.31
+
+Up interfaces for vhost inside ``spp-vm1``.
+In addition, you have to disable TCP offload function, or ssh is failed
+after configuration is done.
+
+.. code-block:: console
+
+    # up interfaces
+    $ sudo ifconfig ens4 inet 192.168.140.21 netmask 255.255.255.0 up
+    $ sudo ifconfig ens5 inet 192.168.150.22 netmask 255.255.255.0 up
+
+    # disable TCP offload
+    $ sudo ethtool -K ens4 tx off
+    $ sudo ethtool -K ens5 tx off
+
+Configurations also for ``spp-vm2`` as ``spp-vm1``.
+
+.. code-block:: console
+
+    # up interfaces
+    $ sudo ifconfig ens4 inet 192.168.140.31 netmask 255.255.255.0 up
+    $ sudo ifconfig ens5 inet 192.168.150.32 netmask 255.255.255.0 up
+
+    # disable TCP offload
+    $ sudo ethtool -K ens4 tx off
+    $ sudo ethtool -K ens5 tx off
+
+
+Login to VMs
+~~~~~~~~~~~~
+
+Now, you can login to VMs from the remote host1.
+
+.. code-block:: console
+
+    # spp-vm1 via NIC0
+    $ ssh sppuser@192.168.140.21
+
+    # spp-vm1 via NIC1
+    $ ssh sppuser@192.168.150.22
+
+    # spp-vm2 via NIC0
+    $ ssh sppuser@192.168.140.31
+
+    # spp-vm2 via NIC1
+    $ ssh sppuser@192.168.150.32
+
+
+.. _spp_vf_use_cases_usecase1_shutdown_spp_vf_components:
+
+Shutdown spp_vf Components
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Basically, you can shutdown all of SPP processes with ``bye all``
+command.
+This section describes graceful shutting down for SPP VF components.
+
+First, delete entries of ``classifier_table`` and ports of components
+for the first SSH login path.
+
+.. code-block:: console
+
+    # Delete MAC address from Classifier
+    spp > vf 1; classifier_table del mac 52:54:00:12:34:56 ring:0
+    spp > vf 1; classifier_table del mac 52:54:00:12:34:58 ring:1
+
+.. code-block:: console
+
+    # classifier1
+    spp > vf 1; port del phy:0 rx classifier1
+    spp > vf 1; port del ring:0 tx classifier1
+    spp > vf 1; port del ring:1 tx classifier1
+    # forwarder1
+    spp > vf 1; port del ring:0 rx forwarder1
+    spp > vf 1; port del vhost:0 tx forwarder1
+    # forwarder2
+    spp > vf 1; port del ring:1 rx forwarder2
+    spp > vf 1; port del vhost:2 tx forwarder2
+
+    # forwarder3
+    spp > vf 1; port del vhost:0 rx forwarder3
+    spp > vf 1; port del ring:2 tx forwarder3
+
+    # forwarder4
+    spp > vf 1; port del vhost:2 rx forwarder4
+    spp > vf 1; port del ring:3 tx forwarder4
+
+    # merger1
+    spp > vf 1; port del ring:2 rx merger1
+    spp > vf 1; port del ring:3 rx merger1
+    spp > vf 1; port del phy:0 tx merger1
+
+Then, stop components.
+
+.. code-block:: console
+
+    # Stop component to spp_vf
+    spp > vf 1; component stop classifier1
+    spp > vf 1; component stop forwarder1
+    spp > vf 1; component stop forwarder2
+    spp > vf 1; component stop forwarder3
+    spp > vf 1; component stop forwarder4
+    spp > vf 1; component stop merger1
+
+Second, do termination for the second path.
+Delete entries from ``classifier_table`` and ports from each of
+components.
+
+.. code-block:: console
+
+    # Delete MAC address from Classifier
+    spp > vf 1; classifier_table del mac 52:54:00:12:34:57 ring:4
+    spp > vf 1; classifier_table del mac 52:54:00:12:34:59 ring:5
+
+.. code-block:: console
+
+    # classifier2
+    spp > vf 1; port del phy:1 rx classifier2
+    spp > vf 1; port del ring:4 tx classifier2
+    spp > vf 1; port del ring:5 tx classifier2
+
+    # forwarder5
+    spp > vf 1; port del ring:4 rx forwarder5
+    spp > vf 1; port del vhost:1 tx forwarder5
+
+    # forwarder6
+    spp > vf 1; port del ring:5 rx forwarder6
+    spp > vf 1; port del vhost:3 tx forwarder6
+
+    # forwarder7
+    spp > vf 1; port del vhost:1 rx forwarder7
+    spp > vf 1; port del ring:6 tx forwarder7
+
+    # forwarder8
+    spp > vf 1; port del vhost:3 tx forwarder8
+    spp > vf 1; port del ring:7 rx forwarder8
+
+    # merger2
+    spp > vf 1; port del ring:6 rx merger2
+    spp > vf 1; port del ring:7 rx merger2
+    spp > vf 1; port del phy:1 tx merger2
+
+Then, stop components.
+
+.. code-block:: console
+
+    # Stop component to spp_vf
+    spp > vf 1; component stop classifier2
+    spp > vf 1; component stop forwarder5
+    spp > vf 1; component stop forwarder6
+    spp > vf 1; component stop forwarder7
+    spp > vf 1; component stop forwarder8
+    spp > vf 1; component stop merger2
+
+Exit spp_vf
+~~~~~~~~~~~
+
+Terminate spp_vf.
+
+.. code-block:: console
+
+    spp > vf 1; exit
-- 
2.7.4

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

* [spp] [PATCH 08/20] docs: update usecase of ssh with spp_vf
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (6 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 07/20] docs: move usecase of spp_vf ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 09/20] docs: update how to use for virsh ogawa.yasufumi
                   ` (11 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This patch is to update usecase of spp_vf for ssh login.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/images/spp_vf/usecase1_nwconfig.svg | 1916 -----------------------
 docs/guides/images/spp_vf/usecase1_overview.svg |  411 -----
 docs/guides/images/usecases/vf_ssh_nwconfig.svg | 1916 +++++++++++++++++++++++
 docs/guides/images/usecases/vf_ssh_overview.svg |  411 +++++
 docs/guides/use_cases/spp_vf.rst                |  432 +++--
 5 files changed, 2527 insertions(+), 2559 deletions(-)
 delete mode 100644 docs/guides/images/spp_vf/usecase1_nwconfig.svg
 delete mode 100644 docs/guides/images/spp_vf/usecase1_overview.svg
 create mode 100644 docs/guides/images/usecases/vf_ssh_nwconfig.svg
 create mode 100644 docs/guides/images/usecases/vf_ssh_overview.svg

diff --git a/docs/guides/images/spp_vf/usecase1_nwconfig.svg b/docs/guides/images/spp_vf/usecase1_nwconfig.svg
deleted file mode 100644
index 65ac3b8..0000000
--- a/docs/guides/images/spp_vf/usecase1_nwconfig.svg
+++ /dev/null
@@ -1,1916 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="330mm"
-   height="160mm"
-   viewBox="0 0 1169.2911 566.92911"
-   id="svg9270"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="usecase1_nwconfig.svg"
-   inkscape:export-filename="/Users/ogawa/Pictures/usecase1_nwconfig.png"
-   inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
-  <defs
-     id="defs9272">
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker39317"
-       style="overflow:visible;"
-       inkscape:isstock="true">
-      <path
-         id="path39319"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker38983"
-       style="overflow:visible;"
-       inkscape:isstock="true">
-      <path
-         id="path38985"
-         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="marker36783"
-       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path36785" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker36461"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path36463"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker36145"
-       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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
-         id="path36147" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker35835"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path35837"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker35523"
-       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path35525" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker35225"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path35227"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker34933"
-       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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
-         id="path34935" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker34647"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path34649"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker34331"
-       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path34333" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker33707"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path33709"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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="marker33083"
-       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path33085" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker30453"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path30455"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker24437"
-       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="path24439" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker24169"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path24171"
-         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="marker23907"
-       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="path23909" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker23651"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path23653"
-         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="marker22041"
-       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path22043" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker21327"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path21329"
-         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="marker21101"
-       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path21103" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker20877"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path20879"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker20663"
-       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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
-         id="path20665" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker20449"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path20451"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker20247"
-       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path20249" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker20051"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path20053"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker19861"
-       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path19863" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker19677"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path19679"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker19499"
-       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path19501" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker19327"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path19329"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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="marker19161"
-       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path19163" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker19001"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path19003"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker18699"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path18701"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker18557"
-       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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
-         id="path18559" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker18421"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path18423"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker18289"
-       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path18291" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker18163"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path18165"
-         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="marker18045"
-       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="path18047" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker17933"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path17935"
-         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="marker17827"
-       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="path17829" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker17727"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path17729"
-         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="marker17633"
-       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="path17635" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker17545"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path17547"
-         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="marker17463"
-       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="path17465" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker17387"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path17389"
-         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="marker17317"
-       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="path17319" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker17197"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path17199"
-         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="marker17139"
-       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="path17141" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker15631"
-       style="overflow:visible;"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path15633"
-         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="path14207"
-         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>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible;"
-       id="marker14505"
-       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="path14507" />
-    </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="path14210"
-         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="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;"
-       inkscape:isstock="true">
-      <path
-         id="path14192"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
-         transform="scale(0.8) rotate(180) translate(12.5,0)" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.70710678"
-     inkscape:cx="666.19832"
-     inkscape:cy="405.71429"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer8"
-     showgrid="false"
-     inkscape:window-width="1440"
-     inkscape:window-height="851"
-     inkscape:window-x="30"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata9275">
-    <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></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Background"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-485.43308)"
-     style="display:inline"
-     sodipodi:insensitive="true" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Host"
-     transform="translate(0,-177.16534)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.6133436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13751"
-       width="890.95874"
-       height="552.8847"
-       x="272.94727"
-       y="185.40306" />
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.00359738;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13753"
-       width="195.26669"
-       height="551.57568"
-       x="5.5016766"
-       y="187.01703" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.90717888;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13781"
-       width="59.092819"
-       height="79.092819"
-       x="139.98549"
-       y="295.58737" />
-    <path
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93401569;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 139.55317,581.42013 0,-39.53299 29.53299,0 29.53299,0 0,39.53299 0,39.53299 -29.53299,0 -29.53299,0 0,-39.53299 z"
-       id="path13785"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.87119967;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13849"
-       width="59.128799"
-       height="79.128799"
-       x="274.25272"
-       y="296.14145" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.84680814;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13851"
-       width="59.153191"
-       height="79.153191"
-       x="275.66907"
-       y="542.12927" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.59599024;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13887"
-       cx="586.10284"
-       cy="248.56296"
-       rx="29.702003"
-       ry="19.702005" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.87626642;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13893"
-       cx="585.81708"
-       cy="303.1344"
-       rx="29.561867"
-       ry="19.561867" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.97154814;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13895"
-       cx="585.24567"
-       cy="357.70587"
-       rx="29.514225"
-       ry="19.514225" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.74929738;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13897"
-       cx="585.81714"
-       cy="415.1344"
-       rx="29.625351"
-       ry="19.625351" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.76775968;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13899"
-       cx="586.67426"
-       cy="503.1344"
-       rx="29.616119"
-       ry="19.616119" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.87893379;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13901"
-       cx="586.38849"
-       cy="562.56299"
-       rx="29.560534"
-       ry="19.560534" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.78242588;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13903"
-       cx="586.38849"
-       cy="628.27722"
-       rx="29.608788"
-       ry="19.608788" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.94965303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13905"
-       cx="586.38849"
-       cy="681.13446"
-       rx="29.525173"
-       ry="19.525173" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.61938131;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13907"
-       cx="856.99988"
-       cy="281.42014"
-       rx="34.690308"
-       ry="29.69031" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.62367457;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13909"
-       cx="856.99988"
-       cy="538.84869"
-       rx="34.688164"
-       ry="29.688162" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.77769536;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13911"
-       cx="856.99988"
-       cy="385.70581"
-       rx="34.611153"
-       ry="29.611153" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.8012569;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13913"
-       cx="856.99988"
-       cy="652.84869"
-       rx="34.599373"
-       ry="29.599371" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker33083);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 767.91785,575.80307 59.39696,60.81118"
-       id="path33075"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="VM"
-     transform="translate(0,-177.16534)">
-    <rect
-       style="opacity:1;fill:#ebffff;fill-opacity:1;stroke:#000000;stroke-width:0.93337435;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13777"
-       width="217.55193"
-       height="218.96613"
-       x="940.46655"
-       y="206.22203" />
-    <rect
-       style="opacity:1;fill:#ebffff;fill-opacity:1;stroke:#000000;stroke-width:1.06073654;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13779"
-       width="216.01033"
-       height="227.32404"
-       x="940.53027"
-       y="471.90094" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.85308915;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13853"
-       width="59.146908"
-       height="59.146912"
-       x="940.42645"
-       y="254.98952" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.83044261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13855"
-       width="59.169556"
-       height="59.169556"
-       x="940.4151"
-       y="354.12106" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.8089959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13857"
-       width="59.191002"
-       height="59.191006"
-       x="940.40436"
-       y="512.68176" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.76903498;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13859"
-       width="59.230965"
-       height="59.230965"
-       x="940.3844"
-       y="625.51892" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Processes"
-     transform="translate(0,-177.16534)">
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.81312722;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13924"
-       width="109.18687"
-       height="39.186874"
-       x="393.72644"
-       y="265.10025"
-       ry="19.593437" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.71274847;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13975"
-       width="109.28725"
-       height="39.287251"
-       x="393.88773"
-       y="621.49078"
-       ry="17.46097" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.88880163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13977"
-       width="109.1112"
-       height="39.111198"
-       x="395.51413"
-       y="365.75101"
-       ry="18.15877"
-       rx="22.00881" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.89412194;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13979"
-       width="109.10588"
-       height="39.105877"
-       x="395.72339"
-       y="507.80826"
-       ry="18.156273" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.97586316;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13981"
-       width="109.02414"
-       height="39.024136"
-       x="664.30499"
-       y="227.05092"
-       ry="16.364935" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.03414404;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13983"
-       width="108.96586"
-       height="38.965855"
-       x="664.33417"
-       y="283.65152"
-       ry="18.091263" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.83751601;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13985"
-       width="109.16249"
-       height="39.162483"
-       x="662.80725"
-       y="340.41031"
-       ry="19.581242" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.00372946;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13987"
-       width="108.99627"
-       height="38.996269"
-       x="662.89044"
-       y="397.92197"
-       ry="19.498135" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.97586316;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13989"
-       width="109.02413"
-       height="39.024136"
-       x="664.30499"
-       y="484.7652"
-       ry="19.512068"
-       rx="0" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.89144975;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13991"
-       width="109.10855"
-       height="39.108551"
-       x="662.83423"
-       y="544.72296"
-       ry="19.554276"
-       rx="0" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.14577103;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13993"
-       width="108.85423"
-       height="38.854229"
-       x="661.24713"
-       y="663.70734"
-       ry="19.427114"
-       rx="0" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93164957;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13995"
-       width="109.06834"
-       height="39.068352"
-       x="661.42572"
-       y="609.02881"
-       ry="19.534176"
-       rx="0" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.65907991;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect14176"
-       width="79.340927"
-       height="59.340919"
-       x="25.659908"
-       y="426.19189"
-       ry="19.570276" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.64513224;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect14178"
-       width="79.354866"
-       height="59.354866"
-       x="1048.8572"
-       y="302.94739"
-       ry="13.320185" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.67842245;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect14180"
-       width="79.321571"
-       height="59.321579"
-       x="1048.5306"
-       y="565.90723"
-       ry="14.095816" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer8"
-     inkscape:label="Pathes"
-     transform="translate(0,-177.16534)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
-       d="M 48.083139,427.31064 C 48.49406,336.26236 56.83346,315.68649 138.59281,318.4162"
-       id="path14183"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart)"
-       d="m 80.610051,424.48222 c -0.488362,-55.71646 4.616042,-76.55129 57.982759,-76.36754"
-       id="path14497"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker15631)"
-       d="M 138.59282,598.43048 C 60.667106,598.15102 51.055777,583.15326 49.497352,486.70761"
-       id="path15609"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker14505)"
-       d="m 80.610051,486.70761 c 3.121247,70.22472 26.782499,78.77937 56.568549,79.19596"
-       id="path15611"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17139)"
-       d="m 199.40399,318.4162 72.12489,0"
-       id="path17129"
-       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(#marker17197)"
-       d="m 272.94309,350.94311 -72.12488,0"
-       id="path17131"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17317)"
-       d="m 332.34007,318.4162 60.81118,-31.1127"
-       id="path17255"
-       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(#marker17387)"
-       d="m 395.97968,386.29845 -62.2254,-33.94113"
-       id="path17257"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17463);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 497.80305,271.74715 57.98276,-21.21321"
-       id="path17259"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17545);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 615.18278,246.2913 46.66905,0"
-       id="path17261"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17633);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 773.5747,247.70552 50.91169,24.04162"
-       id="path17267"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18163);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 825.07217,294.37457 -52.3259,63.63961"
-       id="path17269"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17727)"
-       d="m 889.54021,268.91872 49.49748,0"
-       id="path17271"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18045);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 940.4519,297.20299 -55.15433,0"
-       id="path17273"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17827);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 998.43465,266.09029 c 94.63305,0.45774 104.16945,5.24597 107.48025,35.35534"
-       id="path17275"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17933);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 1071.1453,303.44563 c 6.6858,-10.51028 -33.019,-11.89778 -70.7107,-11.31371"
-       id="path17277"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18421);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="m 998.43465,376.98474 c 40.24095,0.5143 56.08195,3.05682 76.36755,-11.31371"
-       id="path17279"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18557);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 1108.7433,363.08524 c 0.564,40.58047 -33.6193,36.97478 -107.4802,38.18376"
-       id="path17281"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18699);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="m 888.126,375.32788 50.91169,-1.41421"
-       id="path17283"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20663);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="M 772.16048,502.26396 824.48639,401.8548"
-       id="path17287"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20877);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="M 837.2143,411.75429 767.91784,618.22947"
-       id="path17289"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20449);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 829.31481,671.96959 -59.39697,12.72792"
-       id="path17291"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19861);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 1111.5718,625.30054 c -3.2308,26.90074 -39.1957,44.28131 -110.3087,41.01219"
-       id="path17293"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20247);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 938.20926,669.14116 -50.91169,-1.41421"
-       id="path17295"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20051);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 886.71178,636.61425 50.91169,0"
-       id="path17297"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19677);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 1001.2631,642.2711 c 33.0296,0.8126 63.8757,1.51529 73.5391,-14.14213"
-       id="path17299"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19001);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
-       d="m 886.71178,526.30559 52.32591,0"
-       id="path17303"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19161);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
-       d="m 998.43465,527.7198 c 85.27465,-1.40183 113.99635,2.84932 113.13705,39.59799"
-       id="path17305"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19499);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
-       d="m 1067.7312,564.48935 c 0.2203,-10.60148 -37.0372,-9.65317 -66.4681,-11.3137"
-       id="path17307"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19327);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
-       d="m 938.20926,557.41829 -50.91169,-1.41422"
-       id="path17309"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18289);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 769.91784,313.34513 70.71068,197.9899"
-       id="path18281"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker22041);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="M 826.48639,526.30558 767.08942,430.13907"
-       id="path18413"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker21327);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 555.78581,358.01418 -53.74012,16.97056"
-       id="path21091"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker21101);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="M 557.20002,415.99693 502.04569,396.19794"
-       id="path21093"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker24169)"
-       d="m 197.98978,565.90357 73.5391,0"
-       id="path23635"
-       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(#marker24437)"
-       d="m 271.52888,599.84469 -69.29646,0"
-       id="path23639"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker23907)"
-       d="m 333.75428,565.90357 59.39697,-33.94113"
-       id="path23641"
-       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(#marker23651)"
-       d="M 393.15125,640.85689 335.1685,602.67312"
-       id="path23643"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker30453);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 939.62347,397.61216 -50.91169,0"
-       id="path30445"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker33707);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 499.21727,291.54614 56.56854,11.31371"
-       id="path33699"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34331);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 615.76857,302.85985 46.66904,0"
-       id="path34323"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;marker-end:url(#marker38983)"
-       d="m 661.85183,358.01418 -49.49748,0"
-       id="path34629"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;marker-end:url(#marker39317)"
-       d="m 663.26604,417.41115 -48.08326,0"
-       id="path34631"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34647);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="m 502.04569,517.82031 53.74012,-15.55635"
-       id="path34633"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35225);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 502.04569,534.79087 53.74012,24.04163"
-       id="path34635"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34933);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="m 615.18278,502.26396 45.25483,0"
-       id="path34637"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35523);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 615.18278,563.07514 45.25483,0"
-       id="path34639"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36145);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 660.43761,629.54318 -45.25483,0"
-       id="path35821"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36461);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 661.0234,683.2833 -42.42641,1.41421"
-       id="path35823"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36783);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="M 555.78581,681.86908 499.21727,653.58481"
-       id="path35825"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35835);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 555.78581,630.95739 -53.74012,4.24264"
-       id="path35827"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Label-Host"
-     style="display:inline"
-     transform="translate(0,-177.16534)">
-    <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="14.285588"
-       y="209.80876"
-       id="text13862"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13864"
-         x="14.285588"
-         y="209.80876">host1</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="281.71417"
-       y="206.95163"
-       id="text13866"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13868"
-         x="281.71417"
-         y="206.95163">host2</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="150.28558"
-       y="341.80878"
-       id="text13870"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13872"
-         x="150.28558"
-         y="341.80878">NIC2</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="149.42845"
-       y="582.95166"
-       id="text13874"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13876"
-         x="149.42845"
-         y="582.95166">NIC3</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="282.28558"
-       y="339.52304"
-       id="text13878"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13880"
-         x="282.28558"
-         y="339.52304">NIC0</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="283.14273"
-       y="588.66589"
-       id="text13882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13884"
-         x="283.14273"
-         y="588.66589">NIC1</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="564.28558"
-       y="254.38019"
-       id="text13889"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13891"
-         x="564.28558"
-         y="254.38019">ring0</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="563.92798"
-       y="307.93091"
-       id="text14060"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14062"
-         x="563.92798"
-         y="307.93091">ring1</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="563.09955"
-       y="362.6416"
-       id="text14064"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14066"
-         x="563.09955"
-         y="362.6416">ring2</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="563.34216"
-       y="419.89642"
-       id="text14068"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14070"
-         x="563.34216"
-         y="419.89642">ring3</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="563.09949"
-       y="509.92081"
-       id="text14072"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14074"
-         x="563.09949"
-         y="509.92081">ring4</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="563.34216"
-       y="568.83252"
-       id="text14076"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14078"
-         x="563.34216"
-         y="568.83252">ring5</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="564.51373"
-       y="634.47211"
-       id="text14080"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14082"
-         x="564.51373"
-         y="634.47211">ring6</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="563.92798"
-       y="686.21222"
-       id="text14084"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14086"
-         x="563.92798"
-         y="686.21222">ring7</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="825.75848"
-       y="286.47507"
-       id="text14088"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14090"
-         x="825.75848"
-         y="286.47507">vhost0</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="826.58698"
-       y="391.91367"
-       id="text14092"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14094"
-         x="826.58698"
-         y="391.91367">vhost1</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="824.58691"
-       y="545.07513"
-       id="text14096"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14098"
-         x="824.58691"
-         y="545.07513">vhost2</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="828.58691"
-       y="658.99902"
-       id="text14100"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14102"
-         x="828.58691"
-         y="658.99902">vhost3</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-VM"
-     transform="translate(0,-177.16534)">
-    <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="949.42841"
-       y="230.66591"
-       id="text13915"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13917"
-         x="949.42841"
-         y="230.66591">VM1</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="950.85706"
-       y="496.66589"
-       id="text13919"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan13921"
-         x="950.85706"
-         y="496.66589">VM2</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="944.28558"
-       y="291.52307"
-       id="text14018"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14020"
-         x="944.28558"
-         y="291.52307">vNIC0</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="944.28564"
-       y="384.38019"
-       id="text14022"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14024"
-         x="944.28564"
-         y="384.38019">vNIC1</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="944.28564"
-       y="550.9516"
-       id="text14026"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14028"
-         x="944.28564"
-         y="550.9516">vNIC2</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="944.28564"
-       y="660.66589"
-       id="text14030"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14032"
-         x="944.28564"
-         y="660.66589">vNIC3</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer7"
-     inkscape:label="Label-Processes"
-     transform="translate(0,-177.16534)">
-    <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="404.85703"
-       y="291.23734"
-       id="text13998"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14000"
-         x="404.85703"
-         y="291.23734">classifier1</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="412.28558"
-       y="390.66592"
-       id="text14002"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14004"
-         x="412.28558"
-         y="390.66592">merger1</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="407.99988"
-       y="533.80878"
-       id="text14006"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14008"
-         x="407.99988"
-         y="533.80878">classifier2</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="410.57132"
-       y="647.52307"
-       id="text14010"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14012"
-         x="410.57132"
-         y="647.52307">merger2</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="670.85699"
-       y="253.80878"
-       id="text14014"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14016"
-         x="670.85699"
-         y="253.80878">forwarder1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="65.396843"
-       y="452.23956"
-       id="text14034"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14036"
-         x="65.396843"
-         y="452.23956">SSH</tspan><tspan
-         sodipodi:role="line"
-         x="65.396843"
-         y="474.11456"
-         id="tspan14038">client</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="1089.9149"
-       y="327.58777"
-       id="text14040"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14056"
-         x="1089.9149"
-         y="327.58777">SSH</tspan><tspan
-         sodipodi:role="line"
-         id="tspan14058"
-         x="1089.9149"
-         y="349.46277">server1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="1089.2286"
-       y="591.35944"
-       id="text14046"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14052"
-         x="1089.2286"
-         y="591.35944">SSH</tspan><tspan
-         sodipodi:role="line"
-         id="tspan14054"
-         x="1089.2286"
-         y="613.23444">Server2</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="669.85181"
-       y="310.4162"
-       id="text14148"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14150"
-         x="669.85181"
-         y="310.4162">forwarder2</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="667.85181"
-       y="365.22739"
-       id="text14152"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14154"
-         x="667.85181"
-         y="365.22739">forwarder3</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="666.43756"
-       y="422.72485"
-       id="text14156"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14158"
-         x="666.43756"
-         y="422.72485">forwarder4</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="670.68024"
-       y="509.67819"
-       id="text14160"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14162"
-         x="670.68024"
-         y="509.67819">forwarder5</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="669.26605"
-       y="569.07513"
-       id="text14164"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14166"
-         x="669.26605"
-         y="569.07513">forwarder6</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="669.50867"
-       y="633.88635"
-       id="text14168"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14170"
-         x="669.50867"
-         y="633.88635">forwarder7</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="668.92291"
-       y="687.52594"
-       id="text14172"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan14174"
-         x="668.92291"
-         y="687.52594">forwarder8</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/images/spp_vf/usecase1_overview.svg b/docs/guides/images/spp_vf/usecase1_overview.svg
deleted file mode 100644
index 8a2638f..0000000
--- a/docs/guides/images/spp_vf/usecase1_overview.svg
+++ /dev/null
@@ -1,411 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="172mm"
-   height="85mm"
-   viewBox="0 0 609.44882 301.1811"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="usecase1_overview.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4262"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4662"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4664"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4622"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4624"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4588"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4590"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4548"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4550"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4526"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4528"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4265"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.7"
-     inkscape:cx="493.57143"
-     inkscape:cy="234.28571"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer6"
-     showgrid="false"
-     inkscape:window-width="1440"
-     inkscape:window-height="851"
-     inkscape:window-x="0"
-     inkscape:window-y="1"
-     inkscape:window-maximized="1" />
-  <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></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-751.1811)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.58125663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4136"
-       width="151.84288"
-       height="281.13339"
-       x="9.1119556"
-       y="764.15027" />
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.18252945;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4138"
-       width="387.26285"
-       height="279.12057"
-       x="214.23878"
-       y="763.56775" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="VM"
-     transform="translate(0,-88.582674)">
-    <rect
-       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:1.03101707;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4162"
-       width="148.96898"
-       height="108.96899"
-       x="403.4101"
-       y="128.86969" />
-    <rect
-       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:1.04687059;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4164"
-       width="148.95314"
-       height="108.95313"
-       x="404.03186"
-       y="259.73627" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Processes"
-     transform="translate(0,-88.582674)">
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.71295989;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4167"
-       width="83.287041"
-       height="59.287041"
-       x="48.856339"
-       y="218.76329"
-       ry="18.798328" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.91795272;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4169"
-       width="99.082047"
-       height="39.082047"
-       x="249.03409"
-       y="179.42133"
-       ry="18.344635" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.81143534;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4173"
-       width="99.188568"
-       height="39.188564"
-       x="250.13498"
-       y="274.87012"
-       ry="18.08703" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:1.06322145;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4175"
-       width="82.936775"
-       height="58.936779"
-       x="437.79706"
-       y="166.99889"
-       ry="17.189894" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:1.00228477;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4177"
-       width="82.997719"
-       height="58.997715"
-       x="437.7666"
-       y="295.98132"
-       ry="20.059225" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Pathes"
-     transform="translate(0,-88.582674)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4526)"
-       d="M 132.85714,238.33522 250,199.76379"
-       id="path4228"
-       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(#marker4622)"
-       d="m 344.28571,189.76379 91.42858,-4.28571"
-       id="path4230"
-       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-start:url(#Arrow2Lstart)"
-       d="m 347.14286,284.04951 90,-77.14286"
-       id="path4232"
-       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(#Arrow2Lend)"
-       d="m 345.71429,211.19237 91.42856,104.28571"
-       id="path4234"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4662)"
-       d="M 435.71429,335.47808 347.14286,302.62094"
-       id="path4236"
-       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(#marker4548)"
-       d="M 248.57143,294.04951 132.85714,259.76379"
-       id="path4238"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-Processes"
-     transform="translate(0,-88.582674)">
-    <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.285713"
-       y="242.62094"
-       id="text4189"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4191"
-         x="90.285713"
-         y="242.62094"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">SSH</tspan><tspan
-         sodipodi:role="line"
-         x="90.285713"
-         y="264.49594"
-         id="tspan4193"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">client</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="480.85718"
-       y="191.19237"
-       id="text4195"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4197"
-         x="480.85718"
-         y="191.19237"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">SSH</tspan><tspan
-         sodipodi:role="line"
-         x="480.85718"
-         y="213.06737"
-         id="tspan4199"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">server1</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="481.14288"
-       y="321.47809"
-       id="text4201"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4203"
-         x="481.14288"
-         y="321.47809"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">SSH</tspan><tspan
-         sodipodi:role="line"
-         x="481.14288"
-         y="343.35309"
-         id="tspan4205"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">server2</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="268.28571"
-       y="300.90665"
-       id="text4211"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4213"
-         x="268.28571"
-         y="300.90665">Merger</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="258"
-       y="204.90665"
-       id="text4215"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4217"
-         x="258"
-         y="204.90665">Classifier</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Label-Host"
-     transform="translate(0,-88.582674)">
-    <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="231.71429"
-       y="128.0495"
-       id="text4180"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4182"
-         x="231.71429"
-         y="128.0495">host2</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="21.714283"
-       y="129.76379"
-       id="text4184"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4186"
-         x="21.714283"
-         y="129.76379">host1</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="412.85715"
-       y="150.62094"
-       id="text4219"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4221"
-         x="412.85715"
-         y="150.62094">VM1</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="413.42859"
-       y="281.19235"
-       id="text4223"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4225"
-         x="413.42859"
-         y="281.19235">VM2</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/images/usecases/vf_ssh_nwconfig.svg b/docs/guides/images/usecases/vf_ssh_nwconfig.svg
new file mode 100644
index 0000000..65ac3b8
--- /dev/null
+++ b/docs/guides/images/usecases/vf_ssh_nwconfig.svg
@@ -0,0 +1,1916 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="330mm"
+   height="160mm"
+   viewBox="0 0 1169.2911 566.92911"
+   id="svg9270"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="usecase1_nwconfig.svg"
+   inkscape:export-filename="/Users/ogawa/Pictures/usecase1_nwconfig.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs9272">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker39317"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path39319"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker38983"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path38985"
+         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="marker36783"
+       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
+         id="path36785" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker36461"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path36463"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker36145"
+       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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
+         id="path36147" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker35835"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path35837"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker35523"
+       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
+         id="path35525" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker35225"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path35227"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker34933"
+       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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
+         id="path34935" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker34647"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path34649"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker34331"
+       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
+         id="path34333" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker33707"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path33709"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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="marker33083"
+       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
+         id="path33085" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker30453"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path30455"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker24437"
+       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="path24439" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker24169"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path24171"
+         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="marker23907"
+       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="path23909" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker23651"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path23653"
+         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="marker22041"
+       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
+         id="path22043" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker21327"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path21329"
+         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="marker21101"
+       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
+         id="path21103" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker20877"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path20879"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker20663"
+       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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
+         id="path20665" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker20449"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path20451"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker20247"
+       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
+         id="path20249" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker20051"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path20053"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker19861"
+       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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
+         id="path19863" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker19677"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path19679"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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="marker19499"
+       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
+         id="path19501" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker19327"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path19329"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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="marker19161"
+       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
+         id="path19163" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker19001"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path19003"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker18699"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path18701"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker18557"
+       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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
+         id="path18559" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker18421"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path18423"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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="marker18289"
+       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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
+         id="path18291" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker18163"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path18165"
+         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="marker18045"
+       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="path18047" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker17933"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path17935"
+         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="marker17827"
+       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="path17829" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker17727"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path17729"
+         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="marker17633"
+       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="path17635" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker17545"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path17547"
+         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="marker17463"
+       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="path17465" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker17387"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path17389"
+         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="marker17317"
+       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="path17319" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker17197"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path17199"
+         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="marker17139"
+       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="path17141" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker15631"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path15633"
+         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="path14207"
+         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>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker14505"
+       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="path14507" />
+    </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="path14210"
+         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="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path14192"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.70710678"
+     inkscape:cx="666.19832"
+     inkscape:cy="405.71429"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer8"
+     showgrid="false"
+     inkscape:window-width="1440"
+     inkscape:window-height="851"
+     inkscape:window-x="30"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata9275">
+    <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></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Background"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-485.43308)"
+     style="display:inline"
+     sodipodi:insensitive="true" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Host"
+     transform="translate(0,-177.16534)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.6133436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13751"
+       width="890.95874"
+       height="552.8847"
+       x="272.94727"
+       y="185.40306" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.00359738;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13753"
+       width="195.26669"
+       height="551.57568"
+       x="5.5016766"
+       y="187.01703" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.90717888;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13781"
+       width="59.092819"
+       height="79.092819"
+       x="139.98549"
+       y="295.58737" />
+    <path
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93401569;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 139.55317,581.42013 0,-39.53299 29.53299,0 29.53299,0 0,39.53299 0,39.53299 -29.53299,0 -29.53299,0 0,-39.53299 z"
+       id="path13785"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.87119967;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13849"
+       width="59.128799"
+       height="79.128799"
+       x="274.25272"
+       y="296.14145" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.84680814;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13851"
+       width="59.153191"
+       height="79.153191"
+       x="275.66907"
+       y="542.12927" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.59599024;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13887"
+       cx="586.10284"
+       cy="248.56296"
+       rx="29.702003"
+       ry="19.702005" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.87626642;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13893"
+       cx="585.81708"
+       cy="303.1344"
+       rx="29.561867"
+       ry="19.561867" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.97154814;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13895"
+       cx="585.24567"
+       cy="357.70587"
+       rx="29.514225"
+       ry="19.514225" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.74929738;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13897"
+       cx="585.81714"
+       cy="415.1344"
+       rx="29.625351"
+       ry="19.625351" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.76775968;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13899"
+       cx="586.67426"
+       cy="503.1344"
+       rx="29.616119"
+       ry="19.616119" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.87893379;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13901"
+       cx="586.38849"
+       cy="562.56299"
+       rx="29.560534"
+       ry="19.560534" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.78242588;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13903"
+       cx="586.38849"
+       cy="628.27722"
+       rx="29.608788"
+       ry="19.608788" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.94965303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13905"
+       cx="586.38849"
+       cy="681.13446"
+       rx="29.525173"
+       ry="19.525173" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.61938131;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13907"
+       cx="856.99988"
+       cy="281.42014"
+       rx="34.690308"
+       ry="29.69031" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.62367457;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13909"
+       cx="856.99988"
+       cy="538.84869"
+       rx="34.688164"
+       ry="29.688162" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.77769536;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13911"
+       cx="856.99988"
+       cy="385.70581"
+       rx="34.611153"
+       ry="29.611153" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.8012569;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13913"
+       cx="856.99988"
+       cy="652.84869"
+       rx="34.599373"
+       ry="29.599371" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker33083);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 767.91785,575.80307 59.39696,60.81118"
+       id="path33075"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="VM"
+     transform="translate(0,-177.16534)">
+    <rect
+       style="opacity:1;fill:#ebffff;fill-opacity:1;stroke:#000000;stroke-width:0.93337435;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13777"
+       width="217.55193"
+       height="218.96613"
+       x="940.46655"
+       y="206.22203" />
+    <rect
+       style="opacity:1;fill:#ebffff;fill-opacity:1;stroke:#000000;stroke-width:1.06073654;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13779"
+       width="216.01033"
+       height="227.32404"
+       x="940.53027"
+       y="471.90094" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.85308915;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13853"
+       width="59.146908"
+       height="59.146912"
+       x="940.42645"
+       y="254.98952" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.83044261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13855"
+       width="59.169556"
+       height="59.169556"
+       x="940.4151"
+       y="354.12106" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.8089959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13857"
+       width="59.191002"
+       height="59.191006"
+       x="940.40436"
+       y="512.68176" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.76903498;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13859"
+       width="59.230965"
+       height="59.230965"
+       x="940.3844"
+       y="625.51892" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Processes"
+     transform="translate(0,-177.16534)">
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.81312722;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13924"
+       width="109.18687"
+       height="39.186874"
+       x="393.72644"
+       y="265.10025"
+       ry="19.593437" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.71274847;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13975"
+       width="109.28725"
+       height="39.287251"
+       x="393.88773"
+       y="621.49078"
+       ry="17.46097" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.88880163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13977"
+       width="109.1112"
+       height="39.111198"
+       x="395.51413"
+       y="365.75101"
+       ry="18.15877"
+       rx="22.00881" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.89412194;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13979"
+       width="109.10588"
+       height="39.105877"
+       x="395.72339"
+       y="507.80826"
+       ry="18.156273" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.97586316;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13981"
+       width="109.02414"
+       height="39.024136"
+       x="664.30499"
+       y="227.05092"
+       ry="16.364935" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.03414404;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13983"
+       width="108.96586"
+       height="38.965855"
+       x="664.33417"
+       y="283.65152"
+       ry="18.091263" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.83751601;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13985"
+       width="109.16249"
+       height="39.162483"
+       x="662.80725"
+       y="340.41031"
+       ry="19.581242" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.00372946;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13987"
+       width="108.99627"
+       height="38.996269"
+       x="662.89044"
+       y="397.92197"
+       ry="19.498135" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.97586316;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13989"
+       width="109.02413"
+       height="39.024136"
+       x="664.30499"
+       y="484.7652"
+       ry="19.512068"
+       rx="0" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.89144975;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13991"
+       width="109.10855"
+       height="39.108551"
+       x="662.83423"
+       y="544.72296"
+       ry="19.554276"
+       rx="0" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.14577103;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13993"
+       width="108.85423"
+       height="38.854229"
+       x="661.24713"
+       y="663.70734"
+       ry="19.427114"
+       rx="0" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93164957;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13995"
+       width="109.06834"
+       height="39.068352"
+       x="661.42572"
+       y="609.02881"
+       ry="19.534176"
+       rx="0" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.65907991;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect14176"
+       width="79.340927"
+       height="59.340919"
+       x="25.659908"
+       y="426.19189"
+       ry="19.570276" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.64513224;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect14178"
+       width="79.354866"
+       height="59.354866"
+       x="1048.8572"
+       y="302.94739"
+       ry="13.320185" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.67842245;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect14180"
+       width="79.321571"
+       height="59.321579"
+       x="1048.5306"
+       y="565.90723"
+       ry="14.095816" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer8"
+     inkscape:label="Pathes"
+     transform="translate(0,-177.16534)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="M 48.083139,427.31064 C 48.49406,336.26236 56.83346,315.68649 138.59281,318.4162"
+       id="path14183"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart)"
+       d="m 80.610051,424.48222 c -0.488362,-55.71646 4.616042,-76.55129 57.982759,-76.36754"
+       id="path14497"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker15631)"
+       d="M 138.59282,598.43048 C 60.667106,598.15102 51.055777,583.15326 49.497352,486.70761"
+       id="path15609"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker14505)"
+       d="m 80.610051,486.70761 c 3.121247,70.22472 26.782499,78.77937 56.568549,79.19596"
+       id="path15611"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17139)"
+       d="m 199.40399,318.4162 72.12489,0"
+       id="path17129"
+       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(#marker17197)"
+       d="m 272.94309,350.94311 -72.12488,0"
+       id="path17131"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17317)"
+       d="m 332.34007,318.4162 60.81118,-31.1127"
+       id="path17255"
+       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(#marker17387)"
+       d="m 395.97968,386.29845 -62.2254,-33.94113"
+       id="path17257"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17463);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 497.80305,271.74715 57.98276,-21.21321"
+       id="path17259"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17545);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 615.18278,246.2913 46.66905,0"
+       id="path17261"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17633);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 773.5747,247.70552 50.91169,24.04162"
+       id="path17267"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18163);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 825.07217,294.37457 -52.3259,63.63961"
+       id="path17269"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17727)"
+       d="m 889.54021,268.91872 49.49748,0"
+       id="path17271"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18045);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 940.4519,297.20299 -55.15433,0"
+       id="path17273"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17827);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 998.43465,266.09029 c 94.63305,0.45774 104.16945,5.24597 107.48025,35.35534"
+       id="path17275"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17933);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 1071.1453,303.44563 c 6.6858,-10.51028 -33.019,-11.89778 -70.7107,-11.31371"
+       id="path17277"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18421);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
+       d="m 998.43465,376.98474 c 40.24095,0.5143 56.08195,3.05682 76.36755,-11.31371"
+       id="path17279"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18557);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 1108.7433,363.08524 c 0.564,40.58047 -33.6193,36.97478 -107.4802,38.18376"
+       id="path17281"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18699);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
+       d="m 888.126,375.32788 50.91169,-1.41421"
+       id="path17283"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20663);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
+       d="M 772.16048,502.26396 824.48639,401.8548"
+       id="path17287"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20877);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="M 837.2143,411.75429 767.91784,618.22947"
+       id="path17289"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20449);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 829.31481,671.96959 -59.39697,12.72792"
+       id="path17291"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19861);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 1111.5718,625.30054 c -3.2308,26.90074 -39.1957,44.28131 -110.3087,41.01219"
+       id="path17293"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20247);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 938.20926,669.14116 -50.91169,-1.41421"
+       id="path17295"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20051);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 886.71178,636.61425 50.91169,0"
+       id="path17297"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19677);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 1001.2631,642.2711 c 33.0296,0.8126 63.8757,1.51529 73.5391,-14.14213"
+       id="path17299"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19001);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
+       d="m 886.71178,526.30559 52.32591,0"
+       id="path17303"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19161);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
+       d="m 998.43465,527.7198 c 85.27465,-1.40183 113.99635,2.84932 113.13705,39.59799"
+       id="path17305"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19499);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
+       d="m 1067.7312,564.48935 c 0.2203,-10.60148 -37.0372,-9.65317 -66.4681,-11.3137"
+       id="path17307"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19327);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
+       d="m 938.20926,557.41829 -50.91169,-1.41422"
+       id="path17309"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18289);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 769.91784,313.34513 70.71068,197.9899"
+       id="path18281"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker22041);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="M 826.48639,526.30558 767.08942,430.13907"
+       id="path18413"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker21327);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 555.78581,358.01418 -53.74012,16.97056"
+       id="path21091"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker21101);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="M 557.20002,415.99693 502.04569,396.19794"
+       id="path21093"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker24169)"
+       d="m 197.98978,565.90357 73.5391,0"
+       id="path23635"
+       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(#marker24437)"
+       d="m 271.52888,599.84469 -69.29646,0"
+       id="path23639"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker23907)"
+       d="m 333.75428,565.90357 59.39697,-33.94113"
+       id="path23641"
+       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(#marker23651)"
+       d="M 393.15125,640.85689 335.1685,602.67312"
+       id="path23643"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker30453);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 939.62347,397.61216 -50.91169,0"
+       id="path30445"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker33707);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 499.21727,291.54614 56.56854,11.31371"
+       id="path33699"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34331);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 615.76857,302.85985 46.66904,0"
+       id="path34323"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;marker-end:url(#marker38983)"
+       d="m 661.85183,358.01418 -49.49748,0"
+       id="path34629"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;marker-end:url(#marker39317)"
+       d="m 663.26604,417.41115 -48.08326,0"
+       id="path34631"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34647);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
+       d="m 502.04569,517.82031 53.74012,-15.55635"
+       id="path34633"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35225);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 502.04569,534.79087 53.74012,24.04163"
+       id="path34635"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34933);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
+       d="m 615.18278,502.26396 45.25483,0"
+       id="path34637"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35523);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 615.18278,563.07514 45.25483,0"
+       id="path34639"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36145);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 660.43761,629.54318 -45.25483,0"
+       id="path35821"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36461);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="m 661.0234,683.2833 -42.42641,1.41421"
+       id="path35823"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36783);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+       d="M 555.78581,681.86908 499.21727,653.58481"
+       id="path35825"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35835);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
+       d="m 555.78581,630.95739 -53.74012,4.24264"
+       id="path35827"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Label-Host"
+     style="display:inline"
+     transform="translate(0,-177.16534)">
+    <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="14.285588"
+       y="209.80876"
+       id="text13862"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13864"
+         x="14.285588"
+         y="209.80876">host1</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="281.71417"
+       y="206.95163"
+       id="text13866"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13868"
+         x="281.71417"
+         y="206.95163">host2</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="150.28558"
+       y="341.80878"
+       id="text13870"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13872"
+         x="150.28558"
+         y="341.80878">NIC2</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="149.42845"
+       y="582.95166"
+       id="text13874"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13876"
+         x="149.42845"
+         y="582.95166">NIC3</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="282.28558"
+       y="339.52304"
+       id="text13878"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13880"
+         x="282.28558"
+         y="339.52304">NIC0</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="283.14273"
+       y="588.66589"
+       id="text13882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13884"
+         x="283.14273"
+         y="588.66589">NIC1</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="564.28558"
+       y="254.38019"
+       id="text13889"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13891"
+         x="564.28558"
+         y="254.38019">ring0</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="563.92798"
+       y="307.93091"
+       id="text14060"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14062"
+         x="563.92798"
+         y="307.93091">ring1</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="563.09955"
+       y="362.6416"
+       id="text14064"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14066"
+         x="563.09955"
+         y="362.6416">ring2</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="563.34216"
+       y="419.89642"
+       id="text14068"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14070"
+         x="563.34216"
+         y="419.89642">ring3</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="563.09949"
+       y="509.92081"
+       id="text14072"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14074"
+         x="563.09949"
+         y="509.92081">ring4</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="563.34216"
+       y="568.83252"
+       id="text14076"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14078"
+         x="563.34216"
+         y="568.83252">ring5</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="564.51373"
+       y="634.47211"
+       id="text14080"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14082"
+         x="564.51373"
+         y="634.47211">ring6</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="563.92798"
+       y="686.21222"
+       id="text14084"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14086"
+         x="563.92798"
+         y="686.21222">ring7</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="825.75848"
+       y="286.47507"
+       id="text14088"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14090"
+         x="825.75848"
+         y="286.47507">vhost0</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="826.58698"
+       y="391.91367"
+       id="text14092"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14094"
+         x="826.58698"
+         y="391.91367">vhost1</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="824.58691"
+       y="545.07513"
+       id="text14096"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14098"
+         x="824.58691"
+         y="545.07513">vhost2</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="828.58691"
+       y="658.99902"
+       id="text14100"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14102"
+         x="828.58691"
+         y="658.99902">vhost3</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Label-VM"
+     transform="translate(0,-177.16534)">
+    <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="949.42841"
+       y="230.66591"
+       id="text13915"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13917"
+         x="949.42841"
+         y="230.66591">VM1</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="950.85706"
+       y="496.66589"
+       id="text13919"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan13921"
+         x="950.85706"
+         y="496.66589">VM2</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="944.28558"
+       y="291.52307"
+       id="text14018"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14020"
+         x="944.28558"
+         y="291.52307">vNIC0</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="944.28564"
+       y="384.38019"
+       id="text14022"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14024"
+         x="944.28564"
+         y="384.38019">vNIC1</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="944.28564"
+       y="550.9516"
+       id="text14026"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14028"
+         x="944.28564"
+         y="550.9516">vNIC2</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="944.28564"
+       y="660.66589"
+       id="text14030"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14032"
+         x="944.28564"
+         y="660.66589">vNIC3</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="Label-Processes"
+     transform="translate(0,-177.16534)">
+    <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="404.85703"
+       y="291.23734"
+       id="text13998"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14000"
+         x="404.85703"
+         y="291.23734">classifier1</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="412.28558"
+       y="390.66592"
+       id="text14002"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14004"
+         x="412.28558"
+         y="390.66592">merger1</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="407.99988"
+       y="533.80878"
+       id="text14006"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14008"
+         x="407.99988"
+         y="533.80878">classifier2</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="410.57132"
+       y="647.52307"
+       id="text14010"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14012"
+         x="410.57132"
+         y="647.52307">merger2</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="670.85699"
+       y="253.80878"
+       id="text14014"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14016"
+         x="670.85699"
+         y="253.80878">forwarder1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="65.396843"
+       y="452.23956"
+       id="text14034"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14036"
+         x="65.396843"
+         y="452.23956">SSH</tspan><tspan
+         sodipodi:role="line"
+         x="65.396843"
+         y="474.11456"
+         id="tspan14038">client</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1089.9149"
+       y="327.58777"
+       id="text14040"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14056"
+         x="1089.9149"
+         y="327.58777">SSH</tspan><tspan
+         sodipodi:role="line"
+         id="tspan14058"
+         x="1089.9149"
+         y="349.46277">server1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1089.2286"
+       y="591.35944"
+       id="text14046"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14052"
+         x="1089.2286"
+         y="591.35944">SSH</tspan><tspan
+         sodipodi:role="line"
+         id="tspan14054"
+         x="1089.2286"
+         y="613.23444">Server2</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="669.85181"
+       y="310.4162"
+       id="text14148"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14150"
+         x="669.85181"
+         y="310.4162">forwarder2</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="667.85181"
+       y="365.22739"
+       id="text14152"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14154"
+         x="667.85181"
+         y="365.22739">forwarder3</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="666.43756"
+       y="422.72485"
+       id="text14156"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14158"
+         x="666.43756"
+         y="422.72485">forwarder4</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="670.68024"
+       y="509.67819"
+       id="text14160"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14162"
+         x="670.68024"
+         y="509.67819">forwarder5</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="669.26605"
+       y="569.07513"
+       id="text14164"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14166"
+         x="669.26605"
+         y="569.07513">forwarder6</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="669.50867"
+       y="633.88635"
+       id="text14168"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14170"
+         x="669.50867"
+         y="633.88635">forwarder7</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="668.92291"
+       y="687.52594"
+       id="text14172"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14174"
+         x="668.92291"
+         y="687.52594">forwarder8</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/images/usecases/vf_ssh_overview.svg b/docs/guides/images/usecases/vf_ssh_overview.svg
new file mode 100644
index 0000000..8a2638f
--- /dev/null
+++ b/docs/guides/images/usecases/vf_ssh_overview.svg
@@ -0,0 +1,411 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="172mm"
+   height="85mm"
+   viewBox="0 0 609.44882 301.1811"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="usecase1_overview.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4262"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4662"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4664"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4622"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4624"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4588"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4590"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4548"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4550"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4526"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4528"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4265"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="493.57143"
+     inkscape:cy="234.28571"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer6"
+     showgrid="false"
+     inkscape:window-width="1440"
+     inkscape:window-height="851"
+     inkscape:window-x="0"
+     inkscape:window-y="1"
+     inkscape:window-maximized="1" />
+  <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></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Host"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-751.1811)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.58125663;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4136"
+       width="151.84288"
+       height="281.13339"
+       x="9.1119556"
+       y="764.15027" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.18252945;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4138"
+       width="387.26285"
+       height="279.12057"
+       x="214.23878"
+       y="763.56775" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="VM"
+     transform="translate(0,-88.582674)">
+    <rect
+       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:1.03101707;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4162"
+       width="148.96898"
+       height="108.96899"
+       x="403.4101"
+       y="128.86969" />
+    <rect
+       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:1.04687059;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4164"
+       width="148.95314"
+       height="108.95313"
+       x="404.03186"
+       y="259.73627" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Processes"
+     transform="translate(0,-88.582674)">
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.71295989;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4167"
+       width="83.287041"
+       height="59.287041"
+       x="48.856339"
+       y="218.76329"
+       ry="18.798328" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.91795272;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4169"
+       width="99.082047"
+       height="39.082047"
+       x="249.03409"
+       y="179.42133"
+       ry="18.344635" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.81143534;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4173"
+       width="99.188568"
+       height="39.188564"
+       x="250.13498"
+       y="274.87012"
+       ry="18.08703" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:1.06322145;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4175"
+       width="82.936775"
+       height="58.936779"
+       x="437.79706"
+       y="166.99889"
+       ry="17.189894" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:1.00228477;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4177"
+       width="82.997719"
+       height="58.997715"
+       x="437.7666"
+       y="295.98132"
+       ry="20.059225" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Pathes"
+     transform="translate(0,-88.582674)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4526)"
+       d="M 132.85714,238.33522 250,199.76379"
+       id="path4228"
+       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(#marker4622)"
+       d="m 344.28571,189.76379 91.42858,-4.28571"
+       id="path4230"
+       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-start:url(#Arrow2Lstart)"
+       d="m 347.14286,284.04951 90,-77.14286"
+       id="path4232"
+       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(#Arrow2Lend)"
+       d="m 345.71429,211.19237 91.42856,104.28571"
+       id="path4234"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4662)"
+       d="M 435.71429,335.47808 347.14286,302.62094"
+       id="path4236"
+       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(#marker4548)"
+       d="M 248.57143,294.04951 132.85714,259.76379"
+       id="path4238"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Label-Processes"
+     transform="translate(0,-88.582674)">
+    <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.285713"
+       y="242.62094"
+       id="text4189"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4191"
+         x="90.285713"
+         y="242.62094"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">SSH</tspan><tspan
+         sodipodi:role="line"
+         x="90.285713"
+         y="264.49594"
+         id="tspan4193"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">client</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="480.85718"
+       y="191.19237"
+       id="text4195"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4197"
+         x="480.85718"
+         y="191.19237"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">SSH</tspan><tspan
+         sodipodi:role="line"
+         x="480.85718"
+         y="213.06737"
+         id="tspan4199"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">server1</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="481.14288"
+       y="321.47809"
+       id="text4201"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4203"
+         x="481.14288"
+         y="321.47809"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">SSH</tspan><tspan
+         sodipodi:role="line"
+         x="481.14288"
+         y="343.35309"
+         id="tspan4205"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">server2</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="268.28571"
+       y="300.90665"
+       id="text4211"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4213"
+         x="268.28571"
+         y="300.90665">Merger</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="258"
+       y="204.90665"
+       id="text4215"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4217"
+         x="258"
+         y="204.90665">Classifier</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Label-Host"
+     transform="translate(0,-88.582674)">
+    <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="231.71429"
+       y="128.0495"
+       id="text4180"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4182"
+         x="231.71429"
+         y="128.0495">host2</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="21.714283"
+       y="129.76379"
+       id="text4184"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4186"
+         x="21.714283"
+         y="129.76379">host1</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="412.85715"
+       y="150.62094"
+       id="text4219"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4221"
+         x="412.85715"
+         y="150.62094">VM1</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="413.42859"
+       y="281.19235"
+       id="text4223"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4225"
+         x="413.42859"
+         y="281.19235">VM2</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/use_cases/spp_vf.rst b/docs/guides/use_cases/spp_vf.rst
index 90412f9..ec07602 100644
--- a/docs/guides/use_cases/spp_vf.rst
+++ b/docs/guides/use_cases/spp_vf.rst
@@ -22,7 +22,7 @@ Incoming packets through ``NIC0`` are classified based on destination address.
 .. _figure_spp_vf_use_cases_nw_config:
 
 .. figure:: ../images/spp_vf/basic_usecase_vf_nwconfig.*
-    :width: 90%
+    :width: 80%
 
     Network Configuration
 
@@ -42,7 +42,7 @@ Launch ``spp-ctl`` and SPP CLI before primary and secondary processes.
     # terminal 2
     $ python ./src/spp.py -b 192.168.1.100
 
-``spp_primary`` on the second lcore with ``-l 1`` and two ports ``-p 0x03``.
+``spp_primary`` on the second lcore with ``-l 0`` and two ports ``-p 0x03``.
 
 .. code-block:: console
 
@@ -54,7 +54,7 @@ Launch ``spp-ctl`` and SPP CLI before primary and secondary processes.
         --proc-type=primary \
         -- \
         -p 0x03 \
-        -n 10 -s 127.0.0.1:5555
+        -n 10 -s 192.168.1.100:5555
 
 After ``spp_primary`` is launched, run secondary process ``spp_vf``.
 In this case, lcore options is ``-l 2-6`` for one master thread and four
@@ -68,7 +68,7 @@ worker threads.
         -n 4 --proc-type=secondary \
         -- \
         --client-id 1 \
-        -s 127.0.0.1:6666 \
+        -s 192.168.1.100:6666 \
 
 
 Network Configuration
@@ -80,7 +80,7 @@ step by step.
 First of all, setup worker threads from ``component`` command with lcore ID
 and other options on local host ``host2``.
 
-.. code-block:: console
+.. code-block:: none
 
     # terminal 2
     spp > vf 1; component start cls 3 classifier_mac
@@ -91,7 +91,7 @@ and other options on local host ``host2``.
 Add ports for each of components as following.
 The number of rx and tx ports are different for each of component's role.
 
-.. code-block:: console
+.. code-block:: none
 
     # terminal 2
 
@@ -115,7 +115,7 @@ You also need to configure MAC address table for classifier. In this case,
 you need to register two MAC addresses. Although any MAC can be used,
 you use ``52:54:00:12:34:56`` and ``52:54:00:12:34:58``.
 
-.. code-block:: console
+.. code-block:: none
 
     # terminal 2
     spp > vf 1; classifier_table add mac 52:54:00:12:34:56 ring:0
@@ -172,16 +172,19 @@ You can see ICMP Echo requests are received from ping on terminal 2.
 Shutdown spp_vf Components
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+Basically, you can shutdown all of SPP processes with ``bye all``
+command.
+This section describes graceful shutting down.
 First, delete entries of ``classifier_table`` and ports of components.
 
-.. code-block:: console
+.. code-block:: none
 
     # terminal 2
     # Delete MAC address from Classifier
     spp > vf 1; classifier_table del mac 52:54:00:12:34:56 ring:0
     spp > vf 1; classifier_table del mac 52:54:00:12:34:58 ring:1
 
-.. code-block:: console
+.. code-block:: none
 
     # terminal 2
     # classifier
@@ -202,7 +205,7 @@ First, delete entries of ``classifier_table`` and ports of components.
 
 Then, stop components.
 
-.. code-block:: console
+.. code-block:: none
 
     # terminal 2
     spp > vf 1; component stop cls
@@ -233,259 +236,224 @@ Finally, terminate ``spp_vf`` by using ``exit`` or ``bye sec``.
     spp > vf 0; exit
 
 
-.. _spp_vf_use_cases_usecase1:
+.. _spp_usecases_vf_ssh:
 
-Simple SSH Login
+SSH Login to VMs
 ----------------
 
-This section describes a usecase for simple SSH login through SPP VF.
-Incoming packets are classified based on destination addresses defined
-in ``classifier``.
-Reterned packets are aggregated to ``merger`` to send it an outgoing
-port.
+This usecase is to classify packets for ssh connections as another example.
+Incoming packets are classified based on destination addresses and reterned
+packets are aggregated before going out.
 
-.. _figure_simple_ssh_login:
+.. _figure_spp_usecase_vf_ssh_overview:
 
-.. figure:: ../images/spp_vf/usecase1_overview.*
-    :width: 55%
+.. figure:: ../images/usecases/vf_ssh_overview.*
+    :width: 58%
 
     Simple SSH Login
 
 
-Launch SPP Processes
-~~~~~~~~~~~~~~~~~~~~
+Setup
+~~~~~
 
-Change directory to spp and confirm that it is already compiled.
+Launch ``spp-ctl`` and SPP CLI before primary and secondary processes.
 
 .. code-block:: console
 
-    $ cd /path/to/spp
-
-Launch ``spp-ctl`` before launching SPP primary and secondary processes.
-You also need to launch ``spp.py``  if you use ``spp_vf`` from CLI.
-``-b`` option is for binding IP address to communicate other SPP processes,
-but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` although
-doing explicitly in this example to be more understandable.
+    # terminal 1
+    $ python3 ./src/spp-ctl/spp-ctl -b 192.168.1.100
 
 .. code-block:: console
 
-    # Launch spp-ctl and spp.py
-    $ python3 ./src/spp-ctl/spp-ctl -b 127.0.0.1
-    $ python ./src/spp.py -b 127.0.0.1
+    # terminal 2
+    $ python3 ./src/spp.py -b 192.168.1.100
 
-Then, run ``spp_primary`` on the second core with ``-c 0x02``.
+``spp_primary`` on the second lcore with ``-l 1`` and two ports ``-p 0x03``.
 
 .. code-block:: console
 
+    # terminal 3
     $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-        -c 0x02 -n 4 \
+        -l 1 -n 4 \
         --socket-mem 512,512 \
         --huge-dir=/run/hugepages/kvm \
         --proc-type=primary \
         -- \
-        -p 0x03 -n 8 -s 127.0.0.1:5555
+        -p 0x03 -n 10 -s 192.168.1.100:5555
 
-After ``spp_primary`` is launched, run secondary process ``spp_vf``.
-Core mask ``-c 0x3ffd`` indicates to use twelve cores except the second
-core, and it equals to ``-l 0,2-12``.
+Then, run secondary process ``spp_vf`` with ``-l 0,2-13`` which indicates
+to use twelve lcores.
 
 .. code-block:: console
 
+    # terminal 4
     $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-        -c 0x3ffd -n 4 --proc-type=secondary \
+        -l 0,2-13 \
+        -n 4 --proc-type=secondary \
         -- \
         --client-id 1 \
-        -s 127.0.0.1:6666 \
-        --vhost-client
+        -s 192.168.1.100:6666 --vhost-client
 
 
 Network Configuration
 ~~~~~~~~~~~~~~~~~~~~~
 
-Detailed configuration of :numref:`figure_simple_ssh_login` is
-described below.
-In this usecase, there are two NICs on host1 and host2 to duplicate
-login path. Each of combination of classifier and merger responds
-to each of pathes.
+Detailed netowrk configuration of :numref:`figure_spp_usecase_vf_ssh_overview`
+is described below.
+In this usecase, use two NICs on each of host1 and host2 for redundancy.
 
-Incoming packets from NIC0 are classified based on destionation address.
-For example, classifier1 sends packets to forwarder1 for vNIC0 and
-to forwarder2 for vNIC2.
-Outgoing packets from SSH server1 and 2 are aggregated to merger1 and
-sent to SSH clinet via NIC0.
+Incoming packets through NIC0 or NIC1 are classified based on destionation
+address.
 
 .. _figure_network_config:
 
-.. figure:: ../images/spp_vf/usecase1_nwconfig.*
+.. figure:: ../images/usecases/vf_ssh_nwconfig.*
     :width: 100%
 
-    Network Configuration
+    Network Configuration SSH with spp_vhost
 
 You need to input a little bit large amount of commands for the
 configuration, or use ``playback`` command to load from config files.
-You can find a series of config files for this use case in
-``recipes/spp_vf/usecase1/``.
-
-First, lanch threads of SPP VF called ``component`` with its core ID
-and a directive for behaviour.
-It is launched from ``component`` subcommand with options.
+You can load network configuration  from recipes in ``recipes/usecases/``
+as following.
 
-.. code-block:: console
+.. code-block:: none
 
-    spp > sec SEC_ID; component start NAME CORE_ID BEHAVIOUR
+    # terminal 2
+    # Load config from recipe
+    spp > playback recipes/usecases/spp_vf/ssh/1-start_components.rcp
+    spp > playback recipes/usecases/spp_vf/ssh/2-add_port_path1.rcp
+    ....
 
-In this usecase, spp_vf is launched with ID=1. Let's start components
-for the first login path.
-Directive for classifier ``classifier_mac`` means to classify with MAC
-address.
-Core ID from 2 to 7 are assigned to each of components.
+First of all, start components with names such as ``cls1``, ``fwd1`` or so.
 
-.. code-block:: console
+.. code-block:: none
 
-    # Start component to spp_vf
-    spp > vf 1; component start classifier1 2 classifier_mac
-    spp > vf 1; component start forwarder1 3 forward
-    spp > vf 1; component start forwarder2 4 forward
-    spp > vf 1; component start forwarder3 5 forward
-    spp > vf 1; component start forwarder4 6 forward
-    spp > vf 1; component start merger1 7 merge
+    # terminal 2
+    spp > vf 1; component start cls1 2 classifier_mac
+    spp > vf 1; component start fwd1 3 forward
+    spp > vf 1; component start fwd2 4 forward
+    spp > vf 1; component start fwd3 5 forward
+    spp > vf 1; component start fwd4 6 forward
+    spp > vf 1; component start mgr1 7 merge
 
 Each of components must have rx and tx ports for forwarding.
 Add ports for each of components as following.
-You might notice that classifier has two tx ports and
-merger has two rx ports.
+You notice that classifier has two tx ports and merger has two rx ports.
 
 .. code-block:: console
 
-    # classifier1
-    spp > vf 1; port add phy:0 rx classifier1
-    spp > vf 1; port add ring:0 tx classifier1
-    spp > vf 1; port add ring:1 tx classifier1
-
-    # forwarder1
-    spp > vf 1; port add ring:0 rx forwarder1
-    spp > vf 1; port add vhost:0 tx forwarder1
-
-    # forwarder2
-    spp > vf 1; port add ring:1 rx forwarder2
-    spp > vf 1; port add vhost:2 tx forwarder2
-
-    # forwarder3
-    spp > vf 1; port add vhost:0 rx forwarder3
-    spp > vf 1; port add ring:2 tx forwarder3
-
-    # forwarder4
-    spp > vf 1; port add vhost:2 rx forwarder4
-    spp > vf 1; port add ring:3 tx forwarder4
-
-    # merger1
-    spp > vf 1; port add ring:2 rx merger1
-    spp > vf 1; port add ring:3 rx merger1
-    spp > vf 1; port add phy:0 tx merger1
-
-As given ``classifier_mac``, classifier component decides
-the destination with MAC address by referring ``classifier_table``.
-MAC address and corresponging port is registered to the table with
-``classifier_table add mac`` command.
+    # terminal 2
+    # classifier
+    spp > vf 1; port add phy:0 rx cls1
+    spp > vf 1; port add ring:0 tx cls1
+    spp > vf 1; port add ring:1 tx cls1
 
-.. code-block:: console
+    # forwarders
+    spp > vf 1; port add ring:0 rx fwd1
+    spp > vf 1; port add vhost:0 tx fwd1
+    spp > vf 1; port add ring:1 rx fwd2
+    spp > vf 1; port add vhost:2 tx fwd2
+    spp > vf 1; port add vhost:0 rx fwd3
+    spp > vf 1; port add ring:2 tx fwd3
+    spp > vf 1; port add vhost:2 rx fwd4
+    spp > vf 1; port add ring:3 tx fwd4
 
-    spp > vf SEC_ID; classifier_table add mac MAC_ADDR PORT
+    # merger
+    spp > vf 1; port add ring:2 rx mgr1
+    spp > vf 1; port add ring:3 rx mgr1
+    spp > vf 1; port add phy:0 tx mgr1
 
-In this usecase, you need to register two MAC addresses of targetting VM
-for merger1.
+Classifier component decides the destination with MAC address by referring
+``classifier_table``. MAC address and corresponging port is registered to the
+table. In this usecase, you need to register two MAC addresses of targetting
+VM for mgr1, and also mgr2 later.
 
-.. code-block:: console
+.. code-block:: none
 
-    # Register MAC address to classifier
+    # terminal 2
+    # Register MAC addresses for mgr1
     spp > vf 1; classifier_table add mac 52:54:00:12:34:56 ring:0
     spp > vf 1; classifier_table add mac 52:54:00:12:34:58 ring:1
 
+Configuration for the second login path is almost the same as the first path.
 
-Configuration for the second login path is almost similar to the first
-path.
-
-Start components with core ID 8-13 and directives.
-
-.. code-block:: console
+.. code-block:: none
 
-    spp > vf 1; component start classifier2 8 classifier_mac
-    spp > vf 1; component start forwarder5 9 forward
-    spp > vf 1; component start forwarder6 10 forward
-    spp > vf 1; component start forwarder7 11 forward
-    spp > vf 1; component start forwarder8 12 forward
-    spp > vf 1; component start merger2 13 merge
+    # terminal 2
+    spp > vf 1; component start cls2 8 classifier_mac
+    spp > vf 1; component start fwd5 9 forward
+    spp > vf 1; component start fwd6 10 forward
+    spp > vf 1; component start fwd7 11 forward
+    spp > vf 1; component start fwd8 12 forward
+    spp > vf 1; component start mgr2 13 merge
 
 Add ports to each of components.
 
-.. code-block:: console
-
-    # classifier2
-    spp > vf 1; port add phy:1 rx classifier2
-    spp > vf 1; port add ring:4 tx classifier2
-    spp > vf 1; port add ring:5 tx classifier2
-
-    # forwarder5
-    spp > vf 1; port add ring:4 rx forwarder5
-    spp > vf 1; port add vhost:1 tx forwarder5
-
-    # forwarder6
-    spp > vf 1; port add ring:5 rx forwarder6
-    spp > vf 1; port add vhost:3 tx forwarder6
+.. code-block:: none
 
-    # forwarder7
-    spp > vf 1; port add vhost:1 rx forwarder7
-    spp > vf 1; port add ring:6 tx forwarder7
+    # terminal 2
+    # classifier
+    spp > vf 1; port add phy:1 rx cls2
+    spp > vf 1; port add ring:4 tx cls2
+    spp > vf 1; port add ring:5 tx cls2
 
-    # forwarder8
-    spp > vf 1; port add vhost:3 rx forwarder8
-    spp > vf 1; port add ring:7 tx forwarder8
+    # forwarders
+    spp > vf 1; port add ring:4 rx fwd5
+    spp > vf 1; port add vhost:1 tx fwd5
+    spp > vf 1; port add ring:5 rx fwd6
+    spp > vf 1; port add vhost:3 tx fwd6
+    spp > vf 1; port add vhost:1 rx fwd7
+    spp > vf 1; port add ring:6 tx fwd7
+    spp > vf 1; port add vhost:3 rx fwd8
+    spp > vf 1; port add ring:7 tx fwd8
 
-    # merger2
-    spp > vf 1; port add ring:6 rx merger2
-    spp > vf 1; port add ring:7 rx merger2
-    spp > vf 1; port add phy:1 tx merger2
+    # merger
+    spp > vf 1; port add ring:6 rx mgr2
+    spp > vf 1; port add ring:7 rx mgr2
+    spp > vf 1; port add phy:1 tx mgr2
 
-Register entries to classifier_table for classifier2 with MAC address
-of targetting VM..
+Register MAC address entries to ``classifier_table`` for ``cls2``.
 
 .. code-block:: console
 
+    # terminal 2
     # Register MAC address to classifier
     spp > vf 1; classifier_table add mac 52:54:00:12:34:57 ring:4
     spp > vf 1; classifier_table add mac 52:54:00:12:34:59 ring:5
 
 
-.. _spp_vf_use_cases_usecase1_setup_vm:
+.. _spp_usecases_vf_ssh_setup_vms:
 
-Setup for VMs
-~~~~~~~~~~~~~
+Setup VMs
+~~~~~~~~~
 
-Launch VM1 and VM2 with virsh command.
+Launch two VMs with virsh command.
 Setup for virsh is described in :ref:`spp_gsg_howto_virsh`.
+In this case, VMs are named as ``spp-vm1`` and ``spp-vm2``.
 
 .. code-block:: console
 
+    # terminal 5
     $ virsh start spp-vm1  # VM1
     $ virsh start spp-vm2  # VM2
 
-After launched, login to ``spp-vm1`` for configuration inside the VM.
+After VMs are launched, login to ``spp-vm1`` first to configure.
 
 .. note::
 
-    To avoid asked for unknown keys while login VMs,
-    use ``-oStrictHostKeyChecking=no`` option for ssh.
+    To avoid asked for unknown keys while login VMs, use
+    ``-oStrictHostKeyChecking=no`` option for ssh.
 
     .. code-block:: console
 
         $ ssh -oStrictHostKeyChecking=no sppuser at 192.168.122.31
 
-Up interfaces for vhost inside ``spp-vm1``.
-In addition, you have to disable TCP offload function, or ssh is failed
-after configuration is done.
+Up interfaces and disable TCP offload to avoid ssh login is failed.
 
 .. code-block:: console
 
+    # terminal 5
     # up interfaces
     $ sudo ifconfig ens4 inet 192.168.140.21 netmask 255.255.255.0 up
     $ sudo ifconfig ens5 inet 192.168.150.22 netmask 255.255.255.0 up
@@ -494,10 +462,11 @@ after configuration is done.
     $ sudo ethtool -K ens4 tx off
     $ sudo ethtool -K ens5 tx off
 
-Configurations also for ``spp-vm2`` as ``spp-vm1``.
+Configuration of ``spp-vm2`` is almost similar to ``spp-vm1``.
 
 .. code-block:: console
 
+    # terminal 5
     # up interfaces
     $ sudo ifconfig ens4 inet 192.168.140.31 netmask 255.255.255.0 up
     $ sudo ifconfig ens5 inet 192.168.150.32 netmask 255.255.255.0 up
@@ -514,6 +483,7 @@ Now, you can login to VMs from the remote host1.
 
 .. code-block:: console
 
+    # terminal 5
     # spp-vm1 via NIC0
     $ ssh sppuser@192.168.140.21
 
@@ -527,117 +497,115 @@ Now, you can login to VMs from the remote host1.
     $ ssh sppuser@192.168.150.32
 
 
-.. _spp_vf_use_cases_usecase1_shutdown_spp_vf_components:
+.. _spp_usecases_vf_ssh_shutdown:
 
 Shutdown spp_vf Components
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Basically, you can shutdown all of SPP processes with ``bye all``
 command.
-This section describes graceful shutting down for SPP VF components.
+This section describes graceful shutting down.
 
 First, delete entries of ``classifier_table`` and ports of components
 for the first SSH login path.
 
-.. code-block:: console
+.. code-block:: none
 
-    # Delete MAC address from Classifier
+    # terminal 2
+    # Delete MAC address from table
     spp > vf 1; classifier_table del mac 52:54:00:12:34:56 ring:0
     spp > vf 1; classifier_table del mac 52:54:00:12:34:58 ring:1
 
-.. code-block:: console
+Delete ports.
+
+.. code-block:: none
+
+    # terminal 2
+    # classifier
+    spp > vf 1; port del phy:0 rx cls1
+    spp > vf 1; port del ring:0 tx cls1
+    spp > vf 1; port del ring:1 tx cls1
+
+    # forwarders
+    spp > vf 1; port del ring:0 rx fwd1
+    spp > vf 1; port del vhost:0 tx fwd1
+    spp > vf 1; port del ring:1 rx fwd2
+    spp > vf 1; port del vhost:2 tx fwd2
+    spp > vf 1; port del vhost:0 rx fwd3
+    spp > vf 1; port del ring:2 tx fwd3
+    spp > vf 1; port del vhost:2 rx fwd4
+    spp > vf 1; port del ring:3 tx fwd4
 
-    # classifier1
-    spp > vf 1; port del phy:0 rx classifier1
-    spp > vf 1; port del ring:0 tx classifier1
-    spp > vf 1; port del ring:1 tx classifier1
-    # forwarder1
-    spp > vf 1; port del ring:0 rx forwarder1
-    spp > vf 1; port del vhost:0 tx forwarder1
-    # forwarder2
-    spp > vf 1; port del ring:1 rx forwarder2
-    spp > vf 1; port del vhost:2 tx forwarder2
-
-    # forwarder3
-    spp > vf 1; port del vhost:0 rx forwarder3
-    spp > vf 1; port del ring:2 tx forwarder3
-
-    # forwarder4
-    spp > vf 1; port del vhost:2 rx forwarder4
-    spp > vf 1; port del ring:3 tx forwarder4
-
-    # merger1
-    spp > vf 1; port del ring:2 rx merger1
-    spp > vf 1; port del ring:3 rx merger1
-    spp > vf 1; port del phy:0 tx merger1
+    # merger
+    spp > vf 1; port del ring:2 rx mgr1
+    spp > vf 1; port del ring:3 rx mgr1
+    spp > vf 1; port del phy:0 tx mgr1
 
 Then, stop components.
 
-.. code-block:: console
+.. code-block:: none
 
+    # terminal 2
     # Stop component to spp_vf
-    spp > vf 1; component stop classifier1
-    spp > vf 1; component stop forwarder1
-    spp > vf 1; component stop forwarder2
-    spp > vf 1; component stop forwarder3
-    spp > vf 1; component stop forwarder4
-    spp > vf 1; component stop merger1
+    spp > vf 1; component stop cls1
+    spp > vf 1; component stop fwd1
+    spp > vf 1; component stop fwd2
+    spp > vf 1; component stop fwd3
+    spp > vf 1; component stop fwd4
+    spp > vf 1; component stop mgr1
 
 Second, do termination for the second path.
-Delete entries from ``classifier_table`` and ports from each of
-components.
+Delete entries from the table and ports from each of components.
 
-.. code-block:: console
+.. code-block:: none
 
+    # terminal 2
     # Delete MAC address from Classifier
     spp > vf 1; classifier_table del mac 52:54:00:12:34:57 ring:4
     spp > vf 1; classifier_table del mac 52:54:00:12:34:59 ring:5
 
-.. code-block:: console
+.. code-block:: none
 
+    # terminal 2
     # classifier2
-    spp > vf 1; port del phy:1 rx classifier2
-    spp > vf 1; port del ring:4 tx classifier2
-    spp > vf 1; port del ring:5 tx classifier2
-
-    # forwarder5
-    spp > vf 1; port del ring:4 rx forwarder5
-    spp > vf 1; port del vhost:1 tx forwarder5
-
-    # forwarder6
-    spp > vf 1; port del ring:5 rx forwarder6
-    spp > vf 1; port del vhost:3 tx forwarder6
+    spp > vf 1; port del phy:1 rx cls2
+    spp > vf 1; port del ring:4 tx cls2
+    spp > vf 1; port del ring:5 tx cls2
+
+    # forwarder
+    spp > vf 1; port del ring:4 rx fwd5
+    spp > vf 1; port del vhost:1 tx fwd5
+    spp > vf 1; port del ring:5 rx fwd6
+    spp > vf 1; port del vhost:3 tx fwd6
+    spp > vf 1; port del vhost:1 rx fwd7
+    spp > vf 1; port del ring:6 tx fwd7
+    spp > vf 1; port del vhost:3 tx fwd8
+    spp > vf 1; port del ring:7 rx fwd8
 
-    # forwarder7
-    spp > vf 1; port del vhost:1 rx forwarder7
-    spp > vf 1; port del ring:6 tx forwarder7
-
-    # forwarder8
-    spp > vf 1; port del vhost:3 tx forwarder8
-    spp > vf 1; port del ring:7 rx forwarder8
-
-    # merger2
-    spp > vf 1; port del ring:6 rx merger2
-    spp > vf 1; port del ring:7 rx merger2
-    spp > vf 1; port del phy:1 tx merger2
+    # merger
+    spp > vf 1; port del ring:6 rx mgr2
+    spp > vf 1; port del ring:7 rx mgr2
+    spp > vf 1; port del phy:1 tx mgr2
 
 Then, stop components.
 
-.. code-block:: console
+.. code-block:: none
 
+    # terminal 2
     # Stop component to spp_vf
-    spp > vf 1; component stop classifier2
-    spp > vf 1; component stop forwarder5
-    spp > vf 1; component stop forwarder6
-    spp > vf 1; component stop forwarder7
-    spp > vf 1; component stop forwarder8
-    spp > vf 1; component stop merger2
+    spp > vf 1; component stop cls2
+    spp > vf 1; component stop fwd5
+    spp > vf 1; component stop fwd6
+    spp > vf 1; component stop fwd7
+    spp > vf 1; component stop fwd8
+    spp > vf 1; component stop mgr2
 
 Exit spp_vf
 ~~~~~~~~~~~
 
 Terminate spp_vf.
 
-.. code-block:: console
+.. code-block:: none
 
+    # terminal 2
     spp > vf 1; exit
-- 
2.7.4

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

* [spp] [PATCH 09/20] docs: update how to use for virsh
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (7 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 08/20] docs: update usecase of ssh with spp_vf ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 10/20] docs: update usecase of spp_mirror ogawa.yasufumi
                   ` (10 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This patch is to update how to use section for setting up VMs.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/gsg/howto_use.rst               | 266 +++++++++++++++++++++++-----
 docs/guides/spp_vf/gsg/howto_use.rst        | 197 --------------------
 docs/guides/spp_vf/gsg/index.rst            |  10 --
 docs/guides/spp_vf/index.rst                |   1 -
 docs/guides/spp_vf/use_cases/mirror_vms.rst |   2 +-
 5 files changed, 218 insertions(+), 258 deletions(-)
 delete mode 100644 docs/guides/spp_vf/gsg/howto_use.rst
 delete mode 100644 docs/guides/spp_vf/gsg/index.rst

diff --git a/docs/guides/gsg/howto_use.rst b/docs/guides/gsg/howto_use.rst
index d3b0ceb..749f8ba 100644
--- a/docs/guides/gsg/howto_use.rst
+++ b/docs/guides/gsg/howto_use.rst
@@ -315,17 +315,17 @@ secondary processes.
 
 - EAL options:
 
-  - -l: core list
-  - --socket-mem: Memory size on each of NUMA nodes.
-  - --huge-dir: Path of hugepage dir.
-  - --proc-type: Process type.
-  - --base-virtaddr: Specify base virtual address.
+  - ``-l``: core list
+  - ``--socket-mem``: Memory size on each of NUMA nodes.
+  - ``--huge-dir``: Path of hugepage dir.
+  - ``--proc-type``: Process type.
+  - ``--base-virtaddr``: Specify base virtual address.
 
 - Application options:
 
-  - -p: Port mask.
-  - -n: Number of ring PMD.
-  - -s: IP address of controller and port prepared for primary.
+  - ``-p``: Port mask.
+  - ``-n``: Number of ring PMD.
+  - ``-s``: IP address of controller and port prepared for primary.
 
 
 .. _spp_gsg_howto_sec:
@@ -342,8 +342,8 @@ This section describes about the simplest ``spp_nfv`` which simply forward
 packets similar to ``l2fwd``.
 
 
-Launch spp_nfv on Host
-~~~~~~~~~~~~~~~~~~~~~~
+spp_nfv
+~~~~~~~
 
 Run ``spp_nfv`` with options.
 
@@ -353,26 +353,134 @@ Run ``spp_nfv`` with options.
     $ cd /path/to/spp
     $ sudo ./src/nfv/x86_64-native-linuxapp-gcc/spp_nfv \
         -l 2-3 -n 4 \
-        --proc-type=secondary \
+        --proc-type secondary \
         -- \
         -n 1 \
         -s 192.168.1.100:6666
 
-- EAL options:
-
-  - -l: core list (two cores required)
-  - --proc-type: process type
-
-- Application options:
+EAL options are the same as primary process. Here is a list of application
+options of ``spp_nfv``.
 
-  - -n: secondary ID
-  - -s: IP address of controller and port prepared for secondary
+* ``-n``: Secondary ID.
+* ``-s``: IP address and secondary port of spp-ctl.
+* ``--vhost-client``: Enable vhost-user client mode.
 
 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, it
 is failed.
 
+If ``--vhost-client`` option is specified, then ``vhost-user`` act as
+the client, otherwise the server.
+For reconnect feature from SPP to VM, ``--vhost-client`` option can be
+used. This reconnect features requires QEMU 2.7 (or later).
+See also `Vhost Sample Application
+<http://dpdk.org/doc/guides/sample_app_ug/vhost.html>`_.
+
+
+spp_vf
+~~~~~~
+
+``spp_vf`` is a kind of secondary process.
+
+.. code-block:: console
+
+    $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
+      -l 0,2-13 -n 4 \
+      --proc-type secondary \
+      -- \
+      --client-id 1 \
+      -s 192.168.1.100:6666 \
+      --vhost-client
+
+EAL options are the same as primary process. Here is a list of application
+options of ``spp_vf``.
+
+* ``--client-id``: Client ID unique among secondary processes.
+* ``-s``: IPv4 address and secondary port of spp-ctl.
+* ``--vhost-client``: Enable vhost-user client mode.
+
+
+spp_mirror
+~~~~~~~~~~
+
+``spp_mirror`` is a kind of secondary process, and options are same as
+``spp_vf``.
+
+.. code-block:: console
+
+    $ sudo ./src/mirror/x86_64-native-linuxapp-gcc/spp_mirror \
+      -l 1,2 -n 4 \
+      --proc-type secondary \
+      -- \
+      --client-id 1 \
+      -s 192.168.1.100:6666 \
+      -vhost-client
+
+EAL options are the same as primary process. Here is a list of application
+options of ``spp_mirror``.
+
+* ``--client-id``: Client ID unique among secondary processes.
+* ``-s``: IPv4 address and secondary port of spp-ctl.
+* ``--vhost-client``: Enable vhost-user client mode.
+
+
+.. _spp_vf_gsg_howto_use_spp_pcap:
+
+spp_pcap
+~~~~~~~~
+
+``spp_pcap`` is a kind of secondary process.
+
+.. code-block:: console
+
+    $ sudo ./src/pcap/x86_64-native-linuxapp-gcc/spp_pcap \
+      -l 0-3 -n 4 \
+      --proc-type secondary \
+      -- \
+      --client-id 1 \
+      -s 192.168.1.100:6666 \
+      -c phy:0 \
+      --out-dir /path/to/dir \
+      --fsize 107374182
+
+EAL options are the same as primary process. Here is a list of application
+options of ``spp_pcap``.
+
+* ``--client-id``: Client ID unique among secondary processes.
+* ``-s``: IPv4 address and secondary port of spp-ctl.
+* ``-c``: Captured port, e.g. ``phy:0``, ``ring:1`` or so.
+* ``--out-dir``: Optional. Path of dir for captured file. Default is ``/tmp``.
+* ``--fsize``: Optional. Maximum size of a capture file. Default is ``1GiB``.
+
+Captured file of LZ4 is generated in ``/tmp`` by default.
+The name of file is consists of timestamp, resource ID of captured port,
+ID of ``writer`` threads and sequential number.
+Timestamp is decided when capturing is started and formatted as
+``YYYYMMDDhhmmss``.
+Both of ``writer`` thread ID and sequential number are started from ``1``.
+Sequential number is required for the case if the size of
+captured file is reached to the maximum and another file is generated to
+continue capturing.
+
+This is an example of captured file. It consists of timestamp,
+``20190214154925``, port ``phy0``, thread ID ``1`` and sequential number
+``1``.
+
+.. code-block:: none
+
+    /tmp/spp_pcap.20190214154925.phy0.1.1.pcap.lz4
+
+``spp_pcap`` also generates temporary files which are owned by each of
+``writer`` threads until capturing is finished or the size of captured file
+is reached to the maximum.
+This temporary file has additional extension ``tmp`` at the end of file
+name.
+
+.. code-block:: none
+
+    /tmp/spp_pcap.20190214154925.phy0.1.1.pcap.lz4.tmp
+
 
 Launch from SPP CLI
 ~~~~~~~~~~~~~~~~~~~
@@ -589,44 +697,55 @@ Usecases of network configuration are explained in the next chapter.
 Using virsh
 ~~~~~~~~~~~
 
-First of all, please check version of qemu-kvm.
+First of all, please check version of qemu.
 
 .. code-block:: console
 
     $ qemu-system-x86_64 --version
 
-If your system does not have qemu-kvm or the version of qemu is less than 2.7,
-then please install qemu following
-the instruction of https://wiki.qemu.org/index.php/Hosts/Linux
-to install qemu 2.7.
-You may need to install libvirt-bin,
-virtinst, bridge-utils packages via ``apt-get`` install to run
-``virt-install``.
-
+You should install qemu 2.7 or higher for using vhost-user client mode.
+Refer `instruction
+<https://wiki.qemu.org/index.php/Hosts/Linux>`_
+to install.
 
 ``virsh`` is a command line interface that can be used to create, destroy,
-stop start and edit VMs and configure. After create an image file,
-you can setup it with ``virt-install``.
-``--location`` is a URL of installer and it should be
-``http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/``
-for amd64.
+stop start and edit VMs and configure.
+
+You also need to install following packages to run ``virt-install``.
+
+* libvirt-bin
+* virtinst
+* bridge-utils
+
+virt-install
+^^^^^^^^^^^^
+
+Install OS image with ``virt-install`` command.
+``--location`` is a URL of installer. Use Ubuntu 16.04 for amd64 in this
+case.
+
+.. code-block:: none
+
+    http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/
+
+This is an example of ``virt-install``.
 
 .. code-block:: console
 
    virt-install \
-   --name [VM_NAME] \
+   --name VM_NAME \
    --ram 4096 \
-   --disk path=/var/lib/libvirt/images/[VM_NAME].img,size=30 \
+   --disk path=/var/lib/libvirt/images/VM_NAME.img,size=30 \
    --vcpus 4 \
    --os-type linux \
    --os-variant ubuntu16.04 \
    --network network=default \
    --graphics none \
    --console pty,target_type=serial \
-   --location '[LOCATION]' \
+   --location 'http://archive.ubuntu.com/ubuntu/dists/xenial/main/...'
    --extra-args 'console=ttyS0,115200n8 serial'
 
-You may need type the following commands through ssh to activate console.
+You might need to enable serial console as following.
 
 .. code-block:: console
 
@@ -634,26 +753,44 @@ You may need type the following commands through ssh to activate console.
     $sudo systemctl start serial-getty@ttyS0.service
 
 
-Edit VM configuration with virsh.
+Edit Config
+^^^^^^^^^^^
+
+Edit configuration of VM with virsh command. The name of VMs are found from
+``virsh list``.
 
 .. code-block:: console
 
-    $ virsh edit [VM_NAME]
+    # Find the name of VM
+    $ sudo virsh list --all
+
+    $ sudo virsh edit VM_NAME
+
+You need to define namespace ``qemu`` to use tags such as
+``<qemu:commandline>``.
+
+.. code-block:: none
+
+    xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'
+
+In addition, you need to add attributes for specific resources for DPDK and SPP.
+
+* ``<memoryBacking>``
+* ``<qemu:commandline>``
+
+Take care about the index numbers of devices should be the same value such as
+``chr0`` or ``sock0``. It is referred as ID of vhost port from SPP.
 
-You need to add ``xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'``
-into the domain tag because of adding ``<qemu:commandline>`` tag.
-In addition, you need to add the tag enclosed by ``<memoryBacking>`` and
-``</memoryBacking>``, ``<qemu:commandline>`` and ``</qemu:commandline>``
-because SPP uses vhost-user as interface with VM.
-Note that number used in those tags should be the same value
-(e.g. chr0,sock0,vhost-net0) and these values should correspond
-to "add vhost N" (in this example 0).
 MAC address used in
-``<qemu:arg value='virtio-net-pci,netdev=vhost-net0,mac=52:54:00:12:34:56'/>``
 can be specified when registering MAC address to classifier
 using Secondary command.
 
-        The following is an example of modified xml file:
+.. code-block:: none
+
+    <qemu:arg value='virtio-net-pci,netdev=vhost-net0,mac=52:54:00:12:34:56'/>
+
+
+Here is an example of XML config for using with SPP.
 
 .. code-block:: xml
 
@@ -745,3 +882,34 @@ using Secondary command.
         <qemu:arg value='vhost-user,id=vhost-net1,chardev=chr1,vhostforce'/>
       </qemu:commandline>
     </domain>
+
+
+Launch VM
+^^^^^^^^^
+
+After updating XML configuration, launch VM with ``virsh start``.
+
+.. code-block:: console
+
+    $ virsh start VM_NAME
+
+It is required to add network configurations for processes running on the VMs.
+If this configuration is skipped, processes cannot communicate with others
+via SPP.
+
+On the VMs, add an interface and disable offload.
+
+.. code-block:: console
+
+    # Add interface
+    $ sudo ifconfig IF_NAME inet IPADDR netmask NETMASK up
+
+    # Disable offload
+    $ sudo ethtool -K IF_NAME tx off
+
+On host machine, it is also required to disable offload.
+
+.. code-block:: console
+
+    # Disable offload for VM
+    $ sudo ethtool -K IF_NAME tx off
diff --git a/docs/guides/spp_vf/gsg/howto_use.rst b/docs/guides/spp_vf/gsg/howto_use.rst
deleted file mode 100644
index 260527e..0000000
--- a/docs/guides/spp_vf/gsg/howto_use.rst
+++ /dev/null
@@ -1,197 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
-
-.. _spp_vf_gsg_howto_use:
-
-How to Use
-==========
-
-SPP Controller
---------------
-
-Go to the SPP's directory first.
-
-.. code-block:: console
-
-    $ cd /path/to/spp
-
-Launch ``spp-ctl`` before launching SPP primary and secondary processes.
-You also need to launch ``spp.py``  if you use ``spp_vf`` from CLI.
-``-b`` option is for binding IP address to communicate other SPP processes,
-but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` although
-doing explicitly in this example to be more understandable.
-
-.. code-block:: console
-
-    # Launch spp-ctl and spp.py
-    $ python3 ./src/spp-ctl/spp-ctl -b 192.168.1.100
-    $ python ./src/spp.py -b 192.168.1.100
-
-
-SPP Primary
------------
-
-SPP primary allocates and manages resources for secondary processes.
-You need to run SPP primary before secondary processes.
-
-SPP primary has two kinds of options for DPDK and spp.
-Before ``--`` are for DPDK is, and after it are for spp.
-
-See `Running a Sample Application
-<http://dpdk.org/doc/guides/linux_gsg/build_sample_apps.html#running-a-sample-application>`_
-in DPDK documentation for options.
-
-Application specific options of spp primary.
-
-  * ``-p``: Port mask.
-  * ``-n``: Number of rings.
-  * ``-s``: IPv4 address and port for spp primary.
-
-This is an example of launching ``spp_primary``.
-
-.. code-block:: console
-
-    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-      -l 0 -n 4 --socket-mem 512,512 \
-      --huge-dir /run/hugepages/kvm \
-      --proc-type primary \
-      -- \
-      -p 0x03 -n 10 \
-      -s 192.168.1.100:5555
-
-
-.. _spp_vf_gsg_howto_use_spp_vf:
-
-spp_vf
-------
-
-``spp_vf`` is a kind of secondary process, so it takes both of EAL options and
-application specific options. Here is a list of application specific options.
-
-  * ``--client-id``: Client ID unique among secondary processes.
-  * ``-s``: IPv4 address and secondary port of spp-ctl.
-  * ``--vhost-client``: Enable vhost-user client mode.
-
-This is an example of launching ``spp_vf``.
-
-.. code-block:: console
-
-    $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-      -l 0,2-13 -n 4 \
-      --proc-type=secondary \
-      -- \
-      --client-id 1 \
-      -s 192.168.1.100:6666 \
-      --vhost-client
-
-If ``--vhost-client`` option is specified, then ``vhost-user`` act as
-the client, otherwise the server.
-For reconnect feature from SPP to VM, ``--vhost-client`` option can be
-used. This reconnect features requires QEMU 2.7 (or later).
-See also `Vhost Sample Application
-<http://dpdk.org/doc/guides/sample_app_ug/vhost.html>`_.
-
-
-.. _spp_vf_gsg_howto_use_spp_mirror:
-
-spp_mirror
-----------
-
-``spp_mirror`` is a kind of secondary process, and options are same as
-``spp_vf``.
-
-.. code-block:: console
-
-    $ sudo ./src/mirror/x86_64-native-linuxapp-gcc/spp_mirror \
-      -l 1,2 -n 4 \
-      --proc-type=secondary \
-      -- \
-      --client-id 1 \
-      -s 192.168.1.100:6666 \
-      -vhost-client
-
-
-.. _spp_vf_gsg_howto_use_spp_pcap:
-
-spp_pcap
---------
-
-``spp_pcap`` is a kind of secondary process, so it takes both of EAL options
-and application specific options.
-
-.. code-block:: console
-
-    $ sudo ./src/pcap/x86_64-native-linuxapp-gcc/spp_pcap \
-      -l 0-3 -n 4 \
-      --proc-type=secondary \
-      -- \
-      --client-id 1 \
-      -s 192.168.1.100:6666 \
-      -c phy:0 \
-      --out-dir /path/to/dir \
-      --fsize 107374182
-
-Here is a list of ``spp_pcap`` specific options.
-
- * ``-c``: Captured port, e.g. ``phy:0``, ``ring:1`` or so.
- * ``--out-dir``: Optional. Path of dir for captured file. Default is ``/tmp``.
- * ``--fsize``: Optional. Maximum size of a capture file. Default is ``1GiB``.
-
-Captured file of LZ4 is generated in ``/tmp`` by default.
-The name of file is consists of timestamp, resource ID of captured port,
-ID of ``writer`` threads and sequential number.
-Timestamp is decided when capturing is started and formatted as
-``YYYYMMDDhhmmss``.
-Both of ``writer`` thread ID and sequential number are started from ``1``.
-Sequential number is required for the case if the size of
-captured file is reached to the maximum and another file is generated to
-continue capturing.
-
-This is an example of captured file. It consists of timestamp,
-``20190214154925``, port ``phy0``, thread ID ``1`` and sequential number
-``1``.
-
-.. code-block:: none
-
-    /tmp/spp_pcap.20190214154925.phy0.1.1.pcap.lz4
-
-``spp_pcap`` also generates temporary files which are owned by each of
-``writer`` threads until capturing is finished or the size of captured file
-is reached to the maximum.
-This temporary file has additional extension ``tmp`` at the end of file
-name.
-
-.. code-block:: none
-
-    /tmp/spp_pcap.20190214154925.phy0.1.1.pcap.lz4.tmp
-
-
-Using VM with virsh
--------------------
-
-In this section, VM is launched with ``virsh`` command.
-
-.. code-block:: console
-
-    $ virsh start [VM]
-
-It is required to add network configuration for processes running on the VMs.
-If this configuration is skipped, processes cannot communicate with others
-via SPP.
-
-On the VMs, add an interface and disable offload.
-
-.. code-block:: console
-
-    # Add interface
-    $ sudo ifconfig [IF_NAME] inet [IP_ADDR] netmask [NETMASK] up
-
-    # Disable offload
-    $ sudo ethtool -K [IF_NAME] tx off
-
-On host machine, it is also required to disable offload.
-
-.. code-block:: console
-
-    # Disable offload for VM
-    $ sudo ethtool -K [IF_NAME] tx off
diff --git a/docs/guides/spp_vf/gsg/index.rst b/docs/guides/spp_vf/gsg/index.rst
deleted file mode 100644
index 623495f..0000000
--- a/docs/guides/spp_vf/gsg/index.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-Getting Started
-===============
-
-.. toctree::
-   :maxdepth: 2
-
-   howto_use
diff --git a/docs/guides/spp_vf/index.rst b/docs/guides/spp_vf/index.rst
index e5b79ba..412952c 100644
--- a/docs/guides/spp_vf/index.rst
+++ b/docs/guides/spp_vf/index.rst
@@ -8,6 +8,5 @@ SPP VF
    :maxdepth: 2
    :numbered:
 
-   gsg/index
    use_cases/index
    explain/index
diff --git a/docs/guides/spp_vf/use_cases/mirror_vms.rst b/docs/guides/spp_vf/use_cases/mirror_vms.rst
index 39b8ca6..70311f8 100644
--- a/docs/guides/spp_vf/use_cases/mirror_vms.rst
+++ b/docs/guides/spp_vf/use_cases/mirror_vms.rst
@@ -73,7 +73,7 @@ with ``-n 16`` for giving enough number of rings.
 Launch spp_vf
 ~~~~~~~~~~~~~
 
-Launch ``VM1`` as described in :ref:`spp_vf_use_cases_usecase1_setup_vm`,
+Launch ``VM1``
 and launch ``spp_vf`` with core list ``-l 0,2-14`` in this usecase.
 
 .. code-block:: console
-- 
2.7.4

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

* [spp] [PATCH 10/20] docs: update usecase of spp_mirror
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (8 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 09/20] docs: update how to use for virsh ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 11/20] docs: revise how to use and usecases ogawa.yasufumi
                   ` (9 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This patch is to update usecase of spp_mirror.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/spp_vf/use_cases/index.rst         |   2 -
 docs/guides/spp_vf/use_cases/mirror_simple.rst | 170 -----------
 docs/guides/spp_vf/use_cases/mirror_vms.rst    | 285 ------------------
 docs/guides/use_cases/index.rst                |   1 +
 docs/guides/use_cases/spp_mirror.rst           | 391 +++++++++++++++++++++++++
 5 files changed, 392 insertions(+), 457 deletions(-)
 delete mode 100644 docs/guides/spp_vf/use_cases/mirror_simple.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/mirror_vms.rst
 create mode 100644 docs/guides/use_cases/spp_mirror.rst

diff --git a/docs/guides/spp_vf/use_cases/index.rst b/docs/guides/spp_vf/use_cases/index.rst
index 8fb2ea4..59125f4 100644
--- a/docs/guides/spp_vf/use_cases/index.rst
+++ b/docs/guides/spp_vf/use_cases/index.rst
@@ -7,6 +7,4 @@ Use Cases
 .. toctree::
    :maxdepth: 2
 
-   mirror_simple
-   mirror_vms
    pcap_simple
diff --git a/docs/guides/spp_vf/use_cases/mirror_simple.rst b/docs/guides/spp_vf/use_cases/mirror_simple.rst
deleted file mode 100644
index a371b38..0000000
--- a/docs/guides/spp_vf/use_cases/mirror_simple.rst
+++ /dev/null
@@ -1,170 +0,0 @@
-.. SPDX-License-Identifier: BSD-3-Clause
-   Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
-
-.. _spp_mirror_use_cases_basic:
-
-Mirroring Packets from NIC
-==========================
-
-This usecase uses two hosts. ``spp_mirror`` is running on localhost. Remote host
-sends ARP packets to localhost by using ping command. ``spp_mirror`` duplicates
-and sends packets to destination ports.
-
-Network Configuration
----------------------
-
-Detailed configuration is described in
-:numref:`figure_spp_mirror_use_cases_nw_config`.
-In this diagram, incoming packets from ``phy:0`` are mirrored.
-In ``spp_mirror`` process, worker thread ``mir1`` copies incoming packets and
-sends to two destinations ``phy:1`` and ``phy:2``.
-
-.. _figure_spp_mirror_use_cases_nw_config:
-
-.. figure:: ../../images/spp_vf/basic_usecase_mirror_nwconfig.*
-     :width: 80%
-
-     Network configuration of mirroring
-
-
-Setup SPP
----------
-
-Change directory to spp and confirm that it is already compiled.
-
-.. code-block:: console
-
-    $ cd /path/to/spp
-
-Launch ``spp-ctl`` before launching SPP primary and secondary processes.
-You also need to launch ``spp.py``  if you use ``spp_mirror`` from CLI.
-``-b`` option is for binding IP address to communicate other SPP processes,
-but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` .
-
-.. code-block:: console
-
-    # terminal#1
-    # Launch spp-ctl
-    $ python3 ./src/spp-ctl/spp-ctl -b 192.168.1.100
-
-.. code-block:: console
-
-    # terminal#2
-    # Launch SPP CLI
-    $ python ./src/spp.py -b 192.168.1.100
-
-Start ``spp_primary`` with core list option ``-l 1``.
-
-.. code-block:: console
-
-   # terminal#3
-   $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-       -l 1 -n 4 \
-       --socket-mem 512,512 \
-       --huge-dir=/run/hugepages/kvm \
-       --proc-type=primary \
-       -- \
-       -p 0x07 -n 10 -s 192.168.1.100:5555
-
-
-Launch spp_mirror
-~~~~~~~~~~~~~~~~~
-
-Run secondary process ``spp_mirror``.
-
-.. code-block:: console
-
-    # terminal#4
-    $ sudo ./src/mirror/x86_64-native-linuxapp-gcc/app/spp_mirror \
-     -l 0,2 -n 4 --proc-type=secondary \
-     -- \
-     --client-id 1 \
-     -s 192.168.1.100:6666 \
-
-Start mirror component with ``CORE_ID`` 2.
-
-.. code-block:: console
-
-    # Start component on CORE_ID 2
-    spp > mirror 1; component start mir1 2 mirror
-
-Add ``phy:0`` as rx ports and add ``phy:1`` and ``phy:2`` as tx port
-to mirror.
-
-.. code-block:: none
-
-   # add ports to mir1
-   spp > mirror 1; port add phy:0 rx mir1
-   spp > mirror 1; port add phy:1 tx mir1
-   spp > mirror 1; port add phy:2 tx mir1
-
-
-Confirm Original Packet is Duplicated
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To check sent packets are mirrored, you run tcpdump for ``ens1`` and ``ens2``
-first. As you run ping for ``ens0``, you will see the same ARP requests trying
-to resolve ``192.168.140.21`` on terminal 1 and 2.
-
-.. code-block:: console
-
-   # terminal#1 at host1
-   # capture on ens1
-   $ sudo tcpdump -i ens1
-    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
-    listening on ens1, link-type EN10MB (Ethernet), capture size 262144 bytes
-    21:18:44.183261 ARP, Request who-has 192.168.140.21 tell R740n15, length 28
-    21:18:45.202182 ARP, Request who-has 192.168.140.21 tell R740n15, length 28
-    ...
-
-.. code-block:: console
-
-   # terminal#2 at host1
-   # capture on ens2
-   $ sudo tcpdump -i ens2
-    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
-    listening on ens2, link-type EN10MB (Ethernet), capture size 262144 bytes
-    21:18:44.183261 ARP, Request who-has 192.168.140.21 tell R740n15, length 28
-    21:18:45.202182 ARP, Request who-has 192.168.140.21 tell R740n15, length 28
-    ...
-
-Start to send ARP request with ping.
-
-.. code-block:: console
-
-   # terminal#3 at host1
-   # send packet from NIC0
-   $ ping 192.168.140.21 -I ens0
-
-
-Stop Mirroring
-~~~~~~~~~~~~~~
-
-Delete ports for components.
-
-.. code-block:: none
-
-   # Delete port for mir1
-   spp > mirror 1; port del phy:0 rx mir1
-   spp > mirror 1; port del phy:1 tx mir1
-   spp > mirror 1; port del phy:2 tx mir1
-
-Next, stop components.
-
-.. code-block:: console
-
-   # Stop mirror
-   spp > mirror 1; component stop mir1 2 mirror
-
-   spp > mirror 1; status
-   Basic Information:
-     - client-id: 1
-     - ports: [phy:0, phy:1]
-   Components:
-     - core:2 '' (type: unuse)
-
-Finally, terminate ``spp_mirror`` to finish this usecase.
-
-.. code-block:: console
-
-    spp > mirror 1; exit
diff --git a/docs/guides/spp_vf/use_cases/mirror_vms.rst b/docs/guides/spp_vf/use_cases/mirror_vms.rst
deleted file mode 100644
index 70311f8..0000000
--- a/docs/guides/spp_vf/use_cases/mirror_vms.rst
+++ /dev/null
@@ -1,285 +0,0 @@
-..
-   SPDX-License-Identifier: BSD-3-Clause
-   Copyright(c) 2018 Nippon Telegraph and Telephone Corporation
-
-
-.. _spp_mirror_use_cases_usecase:
-
-Mirroring packet from a VM
-==========================
-
-This section describes a usage for mirroring from a VM to other VM through
-spp_mirror.  Traffic from host2 is forwarded to each VM inside host1 thorough
-``spp_vf``. ``spp_vf`` is required in usecase to forward traffic
-from host NIC to each VM.
-
-.. _figure_mirroring_from_vm:
-
-.. figure:: ../../images/spp_vf/spp_mirror_usecase_overview.*
-   :width: 60%
-
-   Mirroring from a VM
-
-
-Network Configuration
----------------------
-
-Detailed configuration of :numref:`figure_mirroring_from_vm` is described in
-:numref:`figure_spp_mirror_usecase_nwconfig`.
-In this senario, incoming packets though ``ring1`` are mirrored.
-In ``spp_mirror`` process, worker thread ``mirror1`` copies incoming packets and
-sends to orignal destination ``VM1`` and new one ``VM3``.
-
-.. _figure_spp_mirror_usecase_nwconfig:
-
-.. figure:: ../../images/spp_vf/spp_mirror_usecase_nwconfig.*
-     :width: 80%
-
-     Network configuration of mirroring
-
-
-Setup SPP and VMs
------------------
-
-Launch ``spp-ctl`` before launching SPP primary and secondary processes.
-You also need to launch ``spp.py``  if you use ``spp_vf`` from CLI.
-``-b`` option is for binding IP address to communicate other SPP processes,
-but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` although
-doing explicitly in this example to be more understandable.
-
-.. code-block:: console
-
-    $cd /path/to/spp
-
-    # Launch spp-ctl and spp.py
-    $ python3 ./src/spp-ctl/spp-ctl -b 127.0.0.1
-    $ python ./src/spp.py -b 127.0.0.1
-
-Start spp_primary with core list option ``-l 1``. It should be started
-with ``-n 16`` for giving enough number of rings.
-
-.. code-block:: console
-
-   # Type the following in different terminal
-   $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-       -l 1 -n 4 \
-       --socket-mem 512,512 \
-       --huge-dir=/run/hugepages/kvm \
-       --proc-type=primary \
-       -- \
-       -p 0x03 -n 16 -s 127.0.0.1:5555
-
-
-Launch spp_vf
-~~~~~~~~~~~~~
-
-Launch ``VM1``
-and launch ``spp_vf`` with core list ``-l 0,2-14`` in this usecase.
-
-.. code-block:: console
-
-   $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-       -l 0,2-14 -n 4 --proc-type=secondary \
-       -- \
-       --client-id 1 \
-       -s 127.0.0.1:6666 \
-       --vhost-client
-
-Start CLI.
-
-.. code-block:: console
-
-   $ python src/spp.py
-
-Start components in ``spp_vf``.
-
-.. code-block:: console
-
-   # start components
-   spp > vf 1; component start classifier 2 classifier_mac
-   spp > vf 1; component start merger 3 merge
-   spp > vf 1; component start forwarder1 4 forward
-   spp > vf 1; component start forwarder2 5 forward
-   spp > vf 1; component start forwarder3 6 forward
-   spp > vf 1; component start forwarder4 7 forward
-
-Add ports for started components.
-
-.. code-block:: console
-
-   # add ports
-   spp > vf 1; port add phy:0 rx classifier
-   spp > vf 1; port add phy:0 tx merger
-   spp > vf 1; port add ring:0 tx classifier
-   spp > vf 1; port add ring:1 tx classifier
-   spp > vf 1; port add ring:0 rx forwarder1
-   spp > vf 1; port add ring:1 rx forwarder2
-   spp > vf 1; port add ring:2 rx merger
-   spp > vf 1; port add ring:3 rx merger
-   spp > vf 1; port add ring:2 tx forwarder3
-   spp > vf 1; port add ring:3 tx forwarder4
-   spp > vf 1; port add vhost:0 tx forwarder1
-   spp > vf 1; port add vhost:1 rx forwarder3
-   spp > vf 1; port add vhost:2 tx forwarder2
-   spp > vf 1; port add vhost:3 rx forwarder4
-
-Add classifier table entries.
-
-.. code-block:: console
-
-   # add classifier table entry
-   spp > vf 1; classifier_table add mac 52:54:00:12:34:56 ring:0
-   spp > vf 1; classifier_table add mac 52:54:00:12:34:58 ring:1
-
-
-To capture incoming packets on VM1, use tcpdump for the interface, ``ens4``
-in this case.
-
-.. code-block:: console
-
-    # capture on ens4 of VM1
-    $ tcpdump -i ens4
-
-You send packets from the remote host1 and confirm packets are received.
-
-.. code-block:: console
-
-    # spp-vm1 via NIC0 from host1
-    $ ping 192.168.140.21
-
-
-
-Launch spp_mirror
-~~~~~~~~~~~~~~~~~
-
-Change directory to spp and confirm that it is already compiled.
-
-.. code-block:: console
-
-   $ cd /path/to/spp
-
-Run secondary process ``spp_mirror``.
-
-.. code-block:: console
-
-   $ sudo ./src/mirror/x86_64-native-linuxapp-gcc/app/spp_mirror \
-     -l 0,15 -n 4 --proc-type=secondary \
-     -- \
-     --client-id 2 \
-     -s 127.0.0.1:6666 \
-     --vhost-client
-
-
-.. note::
-   For SPP secondary processes, client id given with ``--client-id`` option
-   should not be overlapped each otherand. It is also the same for core list
-   ``-l``.
-
-Start mirror component with core ID 15.
-
-.. code-block:: console
-
-    # Start component of spp_mirror on coreID 15
-    spp > mirror 2; component start mirror1 15 mirror
-
-Add ``ring:0`` as rx ports and add ``ring:8`` and ``ring:9`` as tx port
-to mirror.
-
-.. code-block:: console
-
-   # mirror1
-   spp > mirror 2; port add ring:0 rx mirror1
-   spp > mirror 2; port add ring:8 tx mirror1
-   spp > mirror 2; port add ring:9 tx mirror1
-
-Start ``merger3`` with core ID 14.
-
-.. code-block:: console
-
-   # Start component of spp_vf on coreID 14
-   spp > vf 1; component start merger3 14 forward
-
-Add ``ring:9`` as rx port of ``merger3`` and ``vhost:4`` as
-tx port of ``merger3``.
-
-.. code-block:: console
-
-   # merger3
-   spp > vf 1; port add ring:9 rx merger3
-   spp > vf 1; port add vhost:4 tx merger3
-
-Delete ``ring:0`` as rx port of ``forwarder1`` and ``ring:8``  as
-rx port of ``forwarder1``.
-
-.. code-block:: console
-
-   # forward1
-   spp > vf 1; port del ring:0 rx forwarder1
-   spp > vf 1; port add ring:8 rx forwarder1
-
-
-Receive packet on VM3
-~~~~~~~~~~~~~~~~~~~~~
-
-You can capture incoming packets on VM3.
-If you capture packet on VM1, the same packet would be captured.
-
-.. code-block:: console
-
-   # capture on ens4 fo VM1 and VM3
-   $ tcpdump -i ens4
-
-Now, you can send packet from the remote host1.
-
-.. code-block:: console
-
-   # spp-vm1 via NIC0 from host1
-   $ ping 192.168.140.21
-
-
-Stop Mirroring
-~~~~~~~~~~~~~~
-
-Firstly, delete ports for components.
-
-Delete ports for components.
-
-.. code-block:: console
-
-   # Delete port for mirror1
-   spp > mirror 2; port del ring:0 rx mirror1
-   spp > mirror 2; port del ring:8 tx mirror1
-   spp > mirror 2; port del ring:9 tx mirror1
-
-   # Delete port for merger3
-   spp > vf 1; port del ring:9 rx merger3
-   spp > vf 1; port del vhost:4 tx merger3
-
-   # Delete port for forwarder1
-   spp > vf 1; port del ring:8 rx forwarder1
-
-Next, stop components.
-
-.. code-block:: console
-
-   # Stop mirror
-   spp > mirror 2; component stop mirror1 15 mirror
-
-   # Stop merger
-   spp > vf 1; component stop merger3 14 forward
-
-Add port from classifier_mac1 to VM1.
-
-.. code-block:: console
-
-    # Add port from classifier_mac1 to VM1.
-    spp > vf 1; port add ring:0 rx forwarder1
-
-Exit spp_mirror
-~~~~~~~~~~~~~~~
-
-Terminate spp_mirror.
-
-.. code-block:: console
-
-    spp > mirror 1; exit
diff --git a/docs/guides/use_cases/index.rst b/docs/guides/use_cases/index.rst
index cacf563..1422045 100644
--- a/docs/guides/use_cases/index.rst
+++ b/docs/guides/use_cases/index.rst
@@ -10,4 +10,5 @@ Use Cases
 
    spp_nfv
    spp_vf
+   spp_mirror
    multi_nodes
diff --git a/docs/guides/use_cases/spp_mirror.rst b/docs/guides/use_cases/spp_mirror.rst
new file mode 100644
index 0000000..dac565f
--- /dev/null
+++ b/docs/guides/use_cases/spp_mirror.rst
@@ -0,0 +1,391 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+   Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
+
+
+.. _spp_usecases_mirror:
+
+spp_mirror
+==========
+
+Duplicate Packets
+-----------------
+
+Simply duplicate incoming packets and send to two destinations.
+Remote ``host1`` sends ARP packets by using ping command and
+``spp_mirror`` running on local ``host2`` duplicates packets to
+destination ports.
+
+
+Network Configuration
+~~~~~~~~~~~~~~~~~~~~~
+
+Detailed configuration is described in
+:numref:`figure_spp_mirror_use_cases_nw_config`.
+In this diagram, incoming packets from ``phy:0`` are mirrored.
+In ``spp_mirror`` process, worker thread ``mir1`` copies incoming packets and
+sends to two destinations ``phy:1`` and ``phy:2``.
+
+.. _figure_spp_mirror_use_cases_nw_config:
+
+.. figure:: ../images/spp_vf/basic_usecase_mirror_nwconfig.*
+     :width: 80%
+
+     Network configuration of mirroring
+
+
+Setup SPP
+~~~~~~~~~
+
+Change directory to spp and confirm that it is already compiled.
+
+.. code-block:: console
+
+    $ cd /path/to/spp
+
+Launch ``spp-ctl`` before launching SPP primary and secondary processes.
+You also need to launch ``spp.py``  if you use ``spp_mirror`` from CLI.
+``-b`` option is for binding IP address to communicate other SPP processes,
+but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` .
+
+.. code-block:: console
+
+    # terminal 1
+    # Launch spp-ctl
+    $ python3 ./src/spp-ctl/spp-ctl -b 192.168.1.100
+
+.. code-block:: console
+
+    # terminal 2
+    # Launch SPP CLI
+    $ python3 ./src/spp.py -b 192.168.1.100
+
+Start ``spp_primary`` with core list option ``-l 1`` and
+three ports ``-p 0x07``.
+
+.. code-block:: console
+
+   # terminal 3
+   $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+       -l 1 -n 4 \
+       --socket-mem 512,512 \
+       --huge-dir=/run/hugepages/kvm \
+       --proc-type=primary \
+       -- \
+       -p 0x07 -n 10 -s 192.168.1.100:5555
+
+
+Launch spp_mirror
+~~~~~~~~~~~~~~~~~
+
+Run secondary process ``spp_mirror``.
+
+.. code-block:: console
+
+    # terminal 4
+    $ sudo ./src/mirror/x86_64-native-linuxapp-gcc/app/spp_mirror \
+     -l 0,2 -n 4 \
+     --proc-type secondary \
+     -- \
+     --client-id 1 \
+     -s 192.168.1.100:6666 \
+
+Start mirror component with core ID 2.
+
+.. code-block:: console
+
+    # terminal 2
+    spp > mirror 1; component start mir1 2 mirror
+
+Add ``phy:0`` as rx port, and ``phy:1`` and ``phy:2`` as tx ports.
+
+.. code-block:: none
+
+    # terminal 2
+    # add ports to mir1
+    spp > mirror 1; port add phy:0 rx mir1
+    spp > mirror 1; port add phy:1 tx mir1
+    spp > mirror 1; port add phy:2 tx mir1
+
+
+Duplicate Packets
+~~~~~~~~~~~~~~~~~
+
+To check packets are mirrored, you run tcpdump for ``ens1`` and ``ens2``.
+As you run ping for ``ens0`` next, you will see the same ARP requests trying
+to resolve ``192.168.140.21`` on terminal 1 and 2.
+
+.. code-block:: console
+
+    # terminal 1 at host1
+    # capture on ens1
+    $ sudo tcpdump -i ens1
+    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+    listening on ens1, link-type EN10MB (Ethernet), capture size 262144 bytes
+    21:18:44.183261 ARP, Request who-has 192.168.140.21 tell R740n15, length 28
+    21:18:45.202182 ARP, Request who-has 192.168.140.21 tell R740n15, length 28
+    ....
+
+.. code-block:: console
+
+    # terminal 2 at host1
+    # capture on ens2
+    $ sudo tcpdump -i ens2
+    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+    listening on ens2, link-type EN10MB (Ethernet), capture size 262144 bytes
+    21:18:44.183261 ARP, Request who-has 192.168.140.21 tell R740n15, length 28
+    21:18:45.202182 ARP, Request who-has 192.168.140.21 tell R740n15, length 28
+    ...
+
+Start to send ARP request with ping.
+
+.. code-block:: console
+
+   # terminal 3 at host1
+   # send packet from NIC0
+   $ ping 192.168.140.21 -I ens0
+
+
+Stop Mirroring
+~~~~~~~~~~~~~~
+
+Delete ports for components.
+
+.. code-block:: none
+
+   # Delete port for mir1
+   spp > mirror 1; port del phy:0 rx mir1
+   spp > mirror 1; port del phy:1 tx mir1
+   spp > mirror 1; port del phy:2 tx mir1
+
+Next, stop components.
+
+.. code-block:: console
+
+   # Stop mirror
+   spp > mirror 1; component stop mir1 2 mirror
+
+   spp > mirror 1; status
+   Basic Information:
+     - client-id: 1
+     - ports: [phy:0, phy:1]
+   Components:
+     - core:2 '' (type: unuse)
+
+Finally, terminate ``spp_mirror`` to finish this usecase.
+
+.. code-block:: console
+
+    spp > mirror 1; exit
+
+
+.. _spp_usecases_mirror_monitor:
+
+Monitoring Packets
+------------------
+
+Duplicate classified packets for monitoring before going to a VM.
+In this usecase, we are only interested in packets going to ``VM1``.
+Although you might be able to run packet monitor app on host,
+run minitor on ``VM3`` considering more NFV like senario.
+You use ``spp_mirror`` for copying, and ``spp_vf`` classifying packets.
+
+.. _figure_usecase_monitor_overview:
+
+.. figure:: ../images/spp_vf/spp_mirror_usecase_overview.*
+   :width: 60%
+
+   Monitoring with spp_mirror
+
+
+Network Configuration
+~~~~~~~~~~~~~~~~~~~~~
+
+Detailed configuration of :numref:`figure_usecase_monitor_overview`
+is described in :numref:`figure_usecase_monitor_nwconfig`.
+In this senario, worker thread ``mir1`` copies incoming packets
+from though ``ring:0``.
+Then, sends to orignal destination ``VM1`` and anohter one ``VM3``.
+
+.. _figure_usecase_monitor_nwconfig:
+
+.. figure:: ../images/spp_vf/spp_mirror_usecase_nwconfig.*
+     :width: 80%
+
+     Network configuration of monitoring packets
+
+
+Setup SPP and VMs
+~~~~~~~~~~~~~~~~~
+
+Launch ``spp-ctl`` before launching SPP primary and secondary processes.
+You also need to launch ``spp.py``  if you use ``spp_vf`` from CLI.
+``-b`` option is for binding IP address to communicate other SPP processes,
+but no need to give it explicitly if ``127.0.0.1`` or ``localhost`` although
+doing explicitly in this example to be more understandable.
+
+.. code-block:: console
+
+    # terminal 1
+    $ python3 ./src/spp-ctl/spp-ctl -b 192.168.1.100
+
+.. code-block:: console
+
+    # terminal 2
+    $ python3 ./src/spp.py -b 192.168.1.100
+
+Start spp_primary with core list option ``-l 1``.
+
+.. code-block:: console
+
+    # terminal 3
+    # Type the following in different terminal
+    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+        -l 1 -n 4 \
+        --socket-mem 512,512 \
+        --huge-dir=/run/hugepages/kvm \
+        --proc-type=primary \
+        -- \
+        -p 0x03 \
+        -n 10 -s 192.168.1.100:5555
+
+
+Launch spp_vf
+~~~~~~~~~~~~~
+
+Launch ``VM1``, ``VM2`` and ``spp_vf`` with core list ``-l 0,2-8``.
+
+.. code-block:: console
+
+   # terminal 4
+   $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
+       -l 0,2-8 \
+       -n 4 --proc-type secondary \
+       -- \
+       --client-id 1 \
+       -s 192.168.1.100:6666 \
+       --vhost-client
+
+
+Start components in ``spp_vf``.
+
+.. code-block:: none
+
+   # terminal 2
+   spp > vf 1; component start cls 2 classifier_mac
+   spp > vf 1; component start mgr1 3 merge
+   spp > vf 1; component start mgr2 4 merge
+   spp > vf 1; component start fwd1 5 forward
+   spp > vf 1; component start fwd2 6 forward
+   spp > vf 1; component start fwd3 7 forward
+   spp > vf 1; component start fwd4 8 forward
+
+Add ports for components.
+
+.. code-block:: none
+
+   # terminal 2
+   spp > vf 1; port add phy:0 rx cls
+   spp > vf 1; port add ring:0 tx cls
+   spp > vf 1; port add ring:1 tx cls
+
+   spp > vf 1; port add ring:5 rx fwd1
+   spp > vf 1; port add vhost:0 tx fwd1
+
+   spp > vf 1; port add ring:1 rx fwd2
+   spp > vf 1; port add vhost:2 tx fwd2
+
+   spp > vf 1; port add vhost:1 rx fwd3
+   spp > vf 1; port add ring:2 tx fwd3
+
+   spp > vf 1; port add vhost:3 rx fwd4
+   spp > vf 1; port add ring:3 tx fwd4
+
+   spp > vf 1; port add ring:2 rx mgr1
+   spp > vf 1; port add ring:3 rx mgr1
+   spp > vf 1; port add phy:0 tx mgr1
+
+   spp > vf 1; port add ring:4 rx mgr2
+   spp > vf 1; port add vhost:4 tx mgr2
+
+Add classifier table entries.
+
+.. code-block:: none
+
+   # terminal 2
+   spp > vf 1; classifier_table add mac 52:54:00:12:34:56 ring:0
+   spp > vf 1; classifier_table add mac 52:54:00:12:34:58 ring:1
+
+
+To capture incoming packets on ``VM1``, use tcpdump for the interface,
+``ens4`` in this case.
+
+.. code-block:: console
+
+    # terminal 5
+    # capture on ens4 of VM1
+    $ tcpdump -i ens4
+
+You send packets from the remote ``host1`` and confirm packets are received.
+IP address is the same as :ref:`Usecase of spp_vf<spp_usecases_vf>`.
+
+.. code-block:: console
+
+    # Send packets from host1
+    $ ping 192.168.140.21
+
+
+Launch spp_mirror
+~~~~~~~~~~~~~~~~~
+
+Run ``spp_mirror``.
+
+.. code-block:: console
+
+   $ sudo ./src/mirror/x86_64-native-linuxapp-gcc/app/spp_mirror \
+     -l 0,9 \
+     -n 4 --proc-type secondary \
+     -- \
+     --client-id 2 \
+     -s 192.168.1.100:6666 \
+     --vhost-client
+
+Start mirror component with lcore ID 9.
+
+.. code-block:: console
+
+    # Start component on lcore 9
+    spp > mirror 2; component start mir1 9 mirror
+
+Add ``ring:0`` as rx port, ``ring:4`` and ``ring:5`` as tx ports.
+
+.. code-block:: none
+
+   # terminal 2
+   spp > mirror 2; port add ring:0 rx mir1
+   spp > mirror 2; port add ring:4 tx mir1
+   spp > mirror 2; port add ring:5 tx mir1
+
+
+Receive Packet on VM3
+~~~~~~~~~~~~~~~~~~~~~
+
+You can capture incoming packets on VM3.
+If you capture packet on VM1, the same packet would be captured.
+
+.. code-block:: console
+
+   # capture on ens4 fo VM1 and VM3
+   $ tcpdump -i ens4
+
+Now, you can send packet from the remote host1.
+
+.. code-block:: console
+
+   # spp-vm1 via NIC0 from host1
+   $ ping 192.168.140.21
+
+
+Stop Mirroring
+~~~~~~~~~~~~~~
+
+Graceful shutdown of secondary processes is same as previous usecases.
-- 
2.7.4

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

* [spp] [PATCH 11/20] docs: revise how to use and usecases
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (9 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 10/20] docs: update usecase of spp_mirror ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 12/20] docs: move usecase of spp_pcap ogawa.yasufumi
                   ` (8 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

* Add short overviews for each of sec processes.

* Add descs for editing XML config for virsh.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/gsg/howto_use.rst        | 29 +++++++++++++----------------
 docs/guides/use_cases/spp_mirror.rst | 34 +++++++++++++++-------------------
 2 files changed, 28 insertions(+), 35 deletions(-)

diff --git a/docs/guides/gsg/howto_use.rst b/docs/guides/gsg/howto_use.rst
index 749f8ba..09e11b8 100644
--- a/docs/guides/gsg/howto_use.rst
+++ b/docs/guides/gsg/howto_use.rst
@@ -335,17 +335,15 @@ SPP Secondary
 
 Secondary process behaves as a client of primary process and a worker
 for doing tasks for packet processing. There are several kinds of secondary
-process, for example, simply forwarding between ports or classsifying
-by referring packet header.
-
-This section describes about the simplest ``spp_nfv`` which simply forward
-packets similar to ``l2fwd``.
+process, for example, simply forwarding between ports, classsifying packets
+by referring its header or duplicate packets for redundancy.
 
 
 spp_nfv
 ~~~~~~~
 
-Run ``spp_nfv`` with options.
+Run ``spp_nfv`` with options which simply forward packets as similar
+as ``l2fwd``.
 
 .. code-block:: console
 
@@ -381,7 +379,7 @@ See also `Vhost Sample Application
 spp_vf
 ~~~~~~
 
-``spp_vf`` is a kind of secondary process.
+``spp_vf`` is a kind of secondary process for classify or merge packets.
 
 .. code-block:: console
 
@@ -404,8 +402,8 @@ options of ``spp_vf``.
 spp_mirror
 ~~~~~~~~~~
 
-``spp_mirror`` is a kind of secondary process, and options are same as
-``spp_vf``.
+``spp_mirror`` is a kind of secondary process for duplicating packets,
+and options are same as ``spp_vf``.
 
 .. code-block:: console
 
@@ -430,7 +428,8 @@ options of ``spp_mirror``.
 spp_pcap
 ~~~~~~~~
 
-``spp_pcap`` is a kind of secondary process.
+Other than PCAP feature implemented as pcap port in ``spp_nfv``,
+SPP provides ``spp_pcap`` for capturing comparatively heavy traffic.
 
 .. code-block:: console
 
@@ -779,13 +778,11 @@ In addition, you need to add attributes for specific resources for DPDK and SPP.
 * ``<qemu:commandline>``
 
 Take care about the index numbers of devices should be the same value such as
-``chr0`` or ``sock0``. It is referred as ID of vhost port from SPP.
-
-MAC address used in
-can be specified when registering MAC address to classifier
-using Secondary command.
+``chr0`` or ``sock0`` in ``virtio-net-pci`` device. This index is referred as
+ID of vhost port from SPP. MAC address defined in the attribute is used while
+registering destinations for classifier's table.
 
-.. code-block:: none
+.. code-block:: xml
 
     <qemu:arg value='virtio-net-pci,netdev=vhost-net0,mac=52:54:00:12:34:56'/>
 
diff --git a/docs/guides/use_cases/spp_mirror.rst b/docs/guides/use_cases/spp_mirror.rst
index dac565f..3a9f17b 100644
--- a/docs/guides/use_cases/spp_mirror.rst
+++ b/docs/guides/use_cases/spp_mirror.rst
@@ -197,23 +197,6 @@ You use ``spp_mirror`` for copying, and ``spp_vf`` classifying packets.
    Monitoring with spp_mirror
 
 
-Network Configuration
-~~~~~~~~~~~~~~~~~~~~~
-
-Detailed configuration of :numref:`figure_usecase_monitor_overview`
-is described in :numref:`figure_usecase_monitor_nwconfig`.
-In this senario, worker thread ``mir1`` copies incoming packets
-from though ``ring:0``.
-Then, sends to orignal destination ``VM1`` and anohter one ``VM3``.
-
-.. _figure_usecase_monitor_nwconfig:
-
-.. figure:: ../images/spp_vf/spp_mirror_usecase_nwconfig.*
-     :width: 80%
-
-     Network configuration of monitoring packets
-
-
 Setup SPP and VMs
 ~~~~~~~~~~~~~~~~~
 
@@ -249,8 +232,21 @@ Start spp_primary with core list option ``-l 1``.
         -n 10 -s 192.168.1.100:5555
 
 
-Launch spp_vf
-~~~~~~~~~~~~~
+Netowrk Configuration
+~~~~~~~~~~~~~~~~~~~~~
+
+Detailed configuration of :numref:`figure_usecase_monitor_overview`
+is described in :numref:`figure_usecase_monitor_nwconfig`.
+In this senario, worker thread ``mir1`` copies incoming packets
+from though ``ring:0``.
+Then, sends to orignal destination ``VM1`` and anohter one ``VM3``.
+
+.. _figure_usecase_monitor_nwconfig:
+
+.. figure:: ../images/spp_vf/spp_mirror_usecase_nwconfig.*
+     :width: 80%
+
+     Network configuration of monitoring packets
 
 Launch ``VM1``, ``VM2`` and ``spp_vf`` with core list ``-l 0,2-8``.
 
-- 
2.7.4

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

* [spp] [PATCH 12/20] docs: move usecase of spp_pcap
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (10 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 11/20] docs: revise how to use and usecases ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 13/20] docs: remove SPP VF ogawa.yasufumi
                   ` (7 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to move usecase of spp_pcap from `SPP VF`.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/spp_vf/index.rst                 |   3 +-
 docs/guides/spp_vf/use_cases/index.rst       |  10 --
 docs/guides/spp_vf/use_cases/pcap_simple.rst | 235 --------------------------
 docs/guides/use_cases/index.rst              |   1 +
 docs/guides/use_cases/spp_pcap.rst           | 238 +++++++++++++++++++++++++++
 5 files changed, 240 insertions(+), 247 deletions(-)
 delete mode 100644 docs/guides/spp_vf/use_cases/index.rst
 delete mode 100644 docs/guides/spp_vf/use_cases/pcap_simple.rst
 create mode 100644 docs/guides/use_cases/spp_pcap.rst

diff --git a/docs/guides/spp_vf/index.rst b/docs/guides/spp_vf/index.rst
index 412952c..27ab16b 100644
--- a/docs/guides/spp_vf/index.rst
+++ b/docs/guides/spp_vf/index.rst
@@ -5,8 +5,7 @@ SPP VF
 ===========
 
 .. toctree::
-   :maxdepth: 2
+   :maxdepth: 1
    :numbered:
 
-   use_cases/index
    explain/index
diff --git a/docs/guides/spp_vf/use_cases/index.rst b/docs/guides/spp_vf/use_cases/index.rst
deleted file mode 100644
index 59125f4..0000000
--- a/docs/guides/spp_vf/use_cases/index.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
-
-Use Cases
-=========
-
-.. toctree::
-   :maxdepth: 2
-
-   pcap_simple
diff --git a/docs/guides/spp_vf/use_cases/pcap_simple.rst b/docs/guides/spp_vf/use_cases/pcap_simple.rst
deleted file mode 100644
index 34efce3..0000000
--- a/docs/guides/spp_vf/use_cases/pcap_simple.rst
+++ /dev/null
@@ -1,235 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
-
-
-.. _spp_pcap_use_case:
-
-Packet Capture with spp_pcap
-============================
-
-This section describes a usecase for capturing packets with ``spp_pcap``
-and seeing inside of the captured file with ``tcpdump`` command.
-:numref:`figure_simple_capture` shows the overview of scenario in which
-incoming packets via ``phy:0`` are dumped as compressed pcap files by using
-``spp_pcap``.
-
-.. _figure_simple_capture:
-
-.. figure:: ../../images/spp_vf/spp_pcap_overview.*
-    :width: 50%
-
-    Packet capture with spp_pcap
-
-
-.. _spp_pcap_use_case_launch_pcap:
-
-Launch spp_pcap
-~~~~~~~~~~~~~~~
-
-Change directory if you are not in SPP's directory,
-and compile if not done yet.
-
-.. code-block:: console
-
-    $ cd /path/to/spp
-
-Launch spp-ctl and SPP CLI in different terminals.
-
-.. code-block:: console
-
-    # terminal 1
-    $ python3 ./src/spp-ctl/spp-ctl -b 192.168.1.100
-
-.. code-block:: console
-
-    # terminal 2
-    $ python3 ./src/spp.py -b 192.168.1.100
-
-
-Then, run ``spp_primary`` with one physical port.
-
-.. code-block:: console
-
-    # terminal 3
-    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
-        -l 0 -n 4 \
-        --socket-mem 512,512 \
-        --huge-dir /run/hugepages/kvm \
-        --proc-type primary \
-        -- \
-        -p 0x01 \
-        -n 8 -s 192.168.1.100:5555
-
-After ``spp_primary`` is launched successfully, run ``spp_pcap`` in other
-terminal. In this usecase, you use default values for optional arguments.
-Output directory of captured file is ``/tmp`` and the size of file is
-``1GiB``.
-You notice that six lcores are assigned with ``-l 1-6``.
-It means that you use one locre for master, one for receiver, and four for
-writer threads.
-
-.. code-block:: console
-
-    # terminal 4
-    $ sudo ./src/pcap/x86_64-native-linuxapp-gcc/spp_pcap \
-       -l 1-6 -n 4 --proc-type=secondary \
-       -- \
-       --client-id 1 -s 192.168.1.100:6666 \
-       -c phy:0
-
-You can confirm lcores and worker threads running on from ``status`` command.
-
-.. code-block:: none
-
-    # terminal 2
-    spp > pcap 1; status
-      - client-id: 1
-      - status: idle
-      - core:2 receive
-        - rx: phy:0
-      - core:3 write
-        - filename:
-      - core:4 write
-        - filename:
-      - core:5 write
-        - filename:
-      - core:6 write
-        - filename:
-
-
-.. _spp_pcap_use_case_start_capture:
-
-Start Capture
-~~~~~~~~~~~~~
-
-If you already started to send packets to ``phy:0`` from outside,
-you are ready to start capturing packets.
-
-.. code-block:: none
-
-    # terminal 2
-    spp > pcap 1; start
-    Start packet capture.
-
-As you run ``start`` command, PCAP files are generated for each of
-``writer`` threads for capturing.
-
-.. code-block:: none
-
-    # terminal 2
-    spp > pcap 1; status
-      - client-id: 1
-      - status: running
-      - core:2 receive
-        - rx: phy:0
-      - core:3 write
-        - filename: /tmp/spp_pcap.20190214161550.phy0.1.1.pcap.lz4
-      - core:4 write
-        - filename: /tmp/spp_pcap.20190214161550.phy0.2.1.pcap.lz4
-      - core:5 write
-        - filename: /tmp/spp_pcap.20190214161550.phy0.3.1.pcap.lz4
-      - core:6 write
-        - filename: /tmp/spp_pcap.20190214161550.phy0.4.1.pcap.lz4
-
-
-.. _spp_pcap_use_case_stop_capture:
-
-Stop Capture
-~~~~~~~~~~~~
-
-Stop capturing and confirm that compressed PCAP files are generated.
-
-.. code-block:: none
-
-    # terminal 2
-    spp > pcap 1; stop
-    spp > ls /tmp
-    ....
-    spp_pcap.20190214175446.phy0.1.1.pcap.lz4
-    spp_pcap.20190214175446.phy0.1.2.pcap.lz4
-    spp_pcap.20190214175446.phy0.1.3.pcap.lz4
-    spp_pcap.20190214175446.phy0.2.1.pcap.lz4
-    spp_pcap.20190214175446.phy0.2.2.pcap.lz4
-    spp_pcap.20190214175446.phy0.2.3.pcap.lz4
-    ....
-
-Index in the filename, such as ``1.1`` or ``1.2``, is a combination of
-``writer`` thread ID and sequenceal number.
-In this case, it means each of four threads generate three files.
-
-
-.. _spp_pcap_use_case_shutdown:
-
-Shutdown spp_pcap
-~~~~~~~~~~~~~~~~~
-
-Run ``exit`` or ``bye sec`` command to terminate ``spp_pcap``.
-
-.. code-block:: none
-
-    # terminal 2
-    spp > pcap 1; exit
-
-
-.. _spp_pcap_use_case_inspect_file:
-
-Inspect PCAP Files
-~~~~~~~~~~~~~~~~~~
-
-You can inspect captured PCAP files by using utilities.
-
-Merge PCAP Files
-^^^^^^^^^^^^^^^^
-
-Extract and merge compressed PCAP files.
-
-For extract several LZ4 files at once, use ``-d`` and ``-m`` options.
-``-d`` is for decompression and ``-m`` is for multiple files.
-
-You had better not to merge divided files into single file, but still
-several files because the size of merged file might be huge.
-Each of extracted PCAP file is 1GiB in default, so total size of extracted
-files is 12GiB in this case. To avoid the situation, merge files for each of
-threads and generate four PCAP files of 3GiB.
-
-First, extract LZ4 files of writer thread ID 1.
-
-.. code-block:: console
-
-    # terminal 4
-    $ lz4 -d -m /tmp/spp_pcap.20190214175446.phy0.1.*
-
-And confirm that the files are extracted.
-
-.. code-block:: console
-
-    # terminal 4
-    $ ls /tmp | grep pcap$
-    spp_pcap.20190214175446.phy0.1.1.pcap
-    spp_pcap.20190214175446.phy0.1.2.pcap
-    spp_pcap.20190214175446.phy0.1.3.pcap
-
-Run ``mergecap`` command to merge extracted files to current directory
-as ``spp_pcap1.pcap``.
-
-.. code-block:: console
-
-    # terminal 4
-    $ mergecap /tmp/spp_pcap.20190214175446.phy0.1.*.pcap -w spp_pcap1.pcap
-
-Inspect PCAP file
-^^^^^^^^^^^^^^^^^
-
-You can use any of applications, for instance ``wireshark`` or ``tcpdump``,
-for inspecting PCAP file.
-To inspect the merged PCAP file, read packet data from ``tcpdump`` command
-in this usecase. ``-r`` option is to dump packet data in human readable format.
-
-.. code-block:: console
-
-    # terminal 4
-    $ tcpdump -r spp_pcap1.pcap | less
-    17:54:52.559783 IP 192.168.0.100.1234 > 192.168.1.1.5678: Flags [.], ...
-    17:54:52.559784 IP 192.168.0.100.1234 > 192.168.1.1.5678: Flags [.], ...
-    17:54:52.559785 IP 192.168.0.100.1234 > 192.168.1.1.5678: Flags [.], ...
-    17:54:52.559785 IP 192.168.0.100.1234 > 192.168.1.1.5678: Flags [.], ...
diff --git a/docs/guides/use_cases/index.rst b/docs/guides/use_cases/index.rst
index 1422045..f67ea5d 100644
--- a/docs/guides/use_cases/index.rst
+++ b/docs/guides/use_cases/index.rst
@@ -11,4 +11,5 @@ Use Cases
    spp_nfv
    spp_vf
    spp_mirror
+   spp_pcap
    multi_nodes
diff --git a/docs/guides/use_cases/spp_pcap.rst b/docs/guides/use_cases/spp_pcap.rst
new file mode 100644
index 0000000..cfc1fea
--- /dev/null
+++ b/docs/guides/use_cases/spp_pcap.rst
@@ -0,0 +1,238 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
+
+
+.. _spp_usecases_pcap:
+
+spp_pcap
+========
+
+Packet Capture
+--------------
+
+This section describes a usecase for capturing packets with ``spp_pcap``.
+See inside of the captured file with ``tcpdump`` command.
+:numref:`figure_simple_capture` shows the overview of scenario in which
+incoming packets via ``phy:0`` are dumped as compressed pcap files by using
+``spp_pcap``.
+
+.. _figure_simple_capture:
+
+.. figure:: ../images/spp_vf/spp_pcap_overview.*
+    :width: 50%
+
+    Packet capture with spp_pcap
+
+
+.. _spp_pcap_use_case_launch_pcap:
+
+Launch spp_pcap
+~~~~~~~~~~~~~~~
+
+Change directory if you are not in SPP's directory,
+and compile if not done yet.
+
+.. code-block:: console
+
+    $ cd /path/to/spp
+
+Launch spp-ctl and SPP CLI in different terminals.
+
+.. code-block:: console
+
+    # terminal 1
+    $ python3 ./src/spp-ctl/spp-ctl -b 192.168.1.100
+
+.. code-block:: console
+
+    # terminal 2
+    $ python3 ./src/spp.py -b 192.168.1.100
+
+
+Then, run ``spp_primary`` with one physical port.
+
+.. code-block:: console
+
+    # terminal 3
+    $ sudo ./src/primary/x86_64-native-linuxapp-gcc/spp_primary \
+        -l 0 -n 4 \
+        --socket-mem 512,512 \
+        --huge-dir /run/hugepages/kvm \
+        --proc-type primary \
+        -- \
+        -p 0x01 \
+        -n 8 -s 192.168.1.100:5555
+
+After ``spp_primary`` is launched successfully, run ``spp_pcap`` in other
+terminal. In this usecase, you use default values for optional arguments.
+Output directory of captured file is ``/tmp`` and the size of file is
+``1GiB``.
+You notice that six lcores are assigned with ``-l 1-6``.
+It means that you use one locre for master, one for receiver, and four for
+writer threads.
+
+.. code-block:: console
+
+    # terminal 4
+    $ sudo ./src/pcap/x86_64-native-linuxapp-gcc/spp_pcap \
+       -l 1-6 -n 4 --proc-type=secondary \
+       -- \
+       --client-id 1 -s 192.168.1.100:6666 \
+       -c phy:0
+
+You can confirm lcores and worker threads running on from ``status`` command.
+
+.. code-block:: none
+
+    # terminal 2
+    spp > pcap 1; status
+      - client-id: 1
+      - status: idle
+      - core:2 receive
+        - rx: phy:0
+      - core:3 write
+        - filename:
+      - core:4 write
+        - filename:
+      - core:5 write
+        - filename:
+      - core:6 write
+        - filename:
+
+
+.. _spp_pcap_use_case_start_capture:
+
+Start Capture
+~~~~~~~~~~~~~
+
+If you already started to send packets to ``phy:0`` from outside,
+you are ready to start capturing packets.
+
+.. code-block:: none
+
+    # terminal 2
+    spp > pcap 1; start
+    Start packet capture.
+
+As you run ``start`` command, PCAP files are generated for each of
+``writer`` threads for capturing.
+
+.. code-block:: none
+
+    # terminal 2
+    spp > pcap 1; status
+      - client-id: 1
+      - status: running
+      - core:2 receive
+        - rx: phy:0
+      - core:3 write
+        - filename: /tmp/spp_pcap.20190214161550.phy0.1.1.pcap.lz4
+      - core:4 write
+        - filename: /tmp/spp_pcap.20190214161550.phy0.2.1.pcap.lz4
+      - core:5 write
+        - filename: /tmp/spp_pcap.20190214161550.phy0.3.1.pcap.lz4
+      - core:6 write
+        - filename: /tmp/spp_pcap.20190214161550.phy0.4.1.pcap.lz4
+
+
+.. _spp_pcap_use_case_stop_capture:
+
+Stop Capture
+~~~~~~~~~~~~
+
+Stop capturing and confirm that compressed PCAP files are generated.
+
+.. code-block:: none
+
+    # terminal 2
+    spp > pcap 1; stop
+    spp > ls /tmp
+    ....
+    spp_pcap.20190214175446.phy0.1.1.pcap.lz4
+    spp_pcap.20190214175446.phy0.1.2.pcap.lz4
+    spp_pcap.20190214175446.phy0.1.3.pcap.lz4
+    spp_pcap.20190214175446.phy0.2.1.pcap.lz4
+    spp_pcap.20190214175446.phy0.2.2.pcap.lz4
+    spp_pcap.20190214175446.phy0.2.3.pcap.lz4
+    ....
+
+Index in the filename, such as ``1.1`` or ``1.2``, is a combination of
+``writer`` thread ID and sequenceal number.
+In this case, it means each of four threads generate three files.
+
+
+.. _spp_pcap_use_case_shutdown:
+
+Shutdown spp_pcap
+~~~~~~~~~~~~~~~~~
+
+Run ``exit`` or ``bye sec`` command to terminate ``spp_pcap``.
+
+.. code-block:: none
+
+    # terminal 2
+    spp > pcap 1; exit
+
+
+.. _spp_pcap_use_case_inspect_file:
+
+Inspect PCAP Files
+~~~~~~~~~~~~~~~~~~
+
+You can inspect captured PCAP files by using utilities.
+
+Merge PCAP Files
+^^^^^^^^^^^^^^^^
+
+Extract and merge compressed PCAP files.
+
+For extract several LZ4 files at once, use ``-d`` and ``-m`` options.
+``-d`` is for decompression and ``-m`` is for multiple files.
+
+You had better not to merge divided files into single file, but still
+several files because the size of merged file might be huge.
+Each of extracted PCAP file is 1GiB in default, so total size of extracted
+files is 12GiB in this case. To avoid the situation, merge files for each of
+threads and generate four PCAP files of 3GiB.
+
+First, extract LZ4 files of writer thread ID 1.
+
+.. code-block:: console
+
+    # terminal 4
+    $ lz4 -d -m /tmp/spp_pcap.20190214175446.phy0.1.*
+
+And confirm that the files are extracted.
+
+.. code-block:: console
+
+    # terminal 4
+    $ ls /tmp | grep pcap$
+    spp_pcap.20190214175446.phy0.1.1.pcap
+    spp_pcap.20190214175446.phy0.1.2.pcap
+    spp_pcap.20190214175446.phy0.1.3.pcap
+
+Run ``mergecap`` command to merge extracted files to current directory
+as ``spp_pcap1.pcap``.
+
+.. code-block:: console
+
+    # terminal 4
+    $ mergecap /tmp/spp_pcap.20190214175446.phy0.1.*.pcap -w spp_pcap1.pcap
+
+Inspect PCAP file
+^^^^^^^^^^^^^^^^^
+
+You can use any of applications, for instance ``wireshark`` or ``tcpdump``,
+for inspecting PCAP file.
+To inspect the merged PCAP file, read packet data from ``tcpdump`` command
+in this usecase. ``-r`` option is to dump packet data in human readable format.
+
+.. code-block:: console
+
+    # terminal 4
+    $ tcpdump -r spp_pcap1.pcap | less
+    17:54:52.559783 IP 192.168.0.100.1234 > 192.168.1.1.5678: Flags [.], ...
+    17:54:52.559784 IP 192.168.0.100.1234 > 192.168.1.1.5678: Flags [.], ...
+    17:54:52.559785 IP 192.168.0.100.1234 > 192.168.1.1.5678: Flags [.], ...
+    17:54:52.559785 IP 192.168.0.100.1234 > 192.168.1.1.5678: Flags [.], ...
-- 
2.7.4

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

* [spp] [PATCH 13/20] docs: remove SPP VF
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (11 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 12/20] docs: move usecase of spp_pcap ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 14/20] docs: move image of ICMP usecase of spp_vf ogawa.yasufumi
                   ` (6 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to remove `SPP VF`.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/design/impl/index.rst               |  15 +
 docs/guides/design/impl/spp_mirror.rst          | 127 +++++++
 docs/guides/design/impl/spp_pcap.rst            | 144 ++++++++
 docs/guides/design/impl/spp_vf.rst              | 457 ++++++++++++++++++++++++
 docs/guides/design/index.rst                    |   1 +
 docs/guides/index.rst                           |   1 -
 docs/guides/spp_vf/explain/functions_mirror.rst | 127 -------
 docs/guides/spp_vf/explain/functions_pcap.rst   | 144 --------
 docs/guides/spp_vf/explain/functions_vf.rst     | 457 ------------------------
 docs/guides/spp_vf/explain/index.rst            |  12 -
 docs/guides/spp_vf/index.rst                    |  11 -
 11 files changed, 744 insertions(+), 752 deletions(-)
 create mode 100644 docs/guides/design/impl/index.rst
 create mode 100644 docs/guides/design/impl/spp_mirror.rst
 create mode 100644 docs/guides/design/impl/spp_pcap.rst
 create mode 100644 docs/guides/design/impl/spp_vf.rst
 delete mode 100644 docs/guides/spp_vf/explain/functions_mirror.rst
 delete mode 100644 docs/guides/spp_vf/explain/functions_pcap.rst
 delete mode 100644 docs/guides/spp_vf/explain/functions_vf.rst
 delete mode 100644 docs/guides/spp_vf/explain/index.rst
 delete mode 100644 docs/guides/spp_vf/index.rst

diff --git a/docs/guides/design/impl/index.rst b/docs/guides/design/impl/index.rst
new file mode 100644
index 0000000..40fc214
--- /dev/null
+++ b/docs/guides/design/impl/index.rst
@@ -0,0 +1,15 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2014 Intel Corporation
+
+
+Implementation
+==============
+
+This section describes topics of implementation of SPP processes.
+
+.. toctree::
+   :maxdepth: 2
+
+   spp_vf
+   spp_mirror
+   spp_pcap
diff --git a/docs/guides/design/impl/spp_mirror.rst b/docs/guides/design/impl/spp_mirror.rst
new file mode 100644
index 0000000..bb4548e
--- /dev/null
+++ b/docs/guides/design/impl/spp_mirror.rst
@@ -0,0 +1,127 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+   Copyright(c) 2018 Nippon Telegraph and Telephone Corporation
+
+.. _spp_vf_explain_spp_mirror:
+
+spp_mirror
+==========
+
+Initializing
+------------
+
+A main thread of ``spp_mirror`` initialize eal by ``rte_eal_init()``.
+Then each of worker threads is launched from ``rte_eal_remote_launch()``
+by giving a function ``slave_main()`` for forwarding.
+
+.. code-block:: c
+
+    /* spp_mirror.c */
+    int ret_dpdk = rte_eal_init(argc, argv);
+
+    /* Start worker threads of classifier and forwarder */
+    unsigned int lcore_id = 0;
+    RTE_LCORE_FOREACH_SLAVE(lcore_id) {
+            rte_eal_remote_launch(slave_main, NULL, lcore_id);
+    }
+
+
+Main function of slave thread
+-----------------------------
+
+In ``slave_main()``, it calls ``mirror_proc()`` in which packet processing for
+duplicating is defined after finding a core on which running the duplicating.
+
+.. code-block:: c
+
+	RTE_LOG(INFO, MIRROR, "Core[%d] Start.\n", lcore_id);
+	set_core_status(lcore_id, SPP_CORE_IDLE);
+
+	while ((status = spp_get_core_status(lcore_id)) !=
+			SPP_CORE_STOP_REQUEST) {
+		if (status != SPP_CORE_FORWARD)
+			continue;
+
+		if (spp_check_core_index(lcore_id)) {
+			/* Setting with the flush command trigger. */
+			info->ref_index = (info->upd_index+1) %
+					SPP_INFO_AREA_MAX;
+			core = get_core_info(lcore_id);
+		}
+
+		for (cnt = 0; cnt < core->num; cnt++) {
+			/*
+			 * mirror returns at once.
+			 * It is for processing multiple components.
+			 */
+			ret = mirror_proc(core->id[cnt]);
+			if (unlikely(ret != 0))
+				break;
+		}
+		if (unlikely(ret != 0)) {
+			RTE_LOG(ERR, MIRROR,
+				"Core[%d] Component Error. (id = %d)\n",
+					lcore_id, core->id[cnt]);
+			break;
+		}
+	}
+
+	set_core_status(lcore_id, SPP_CORE_STOP);
+	RTE_LOG(INFO, MIRROR, "Core[%d] End.\n", lcore_id);
+
+Packet mirroring
+----------------
+
+In ``mirror_proc()``, it receives packets from rx port.
+
+.. code-block:: c
+
+        /* Receive packets */
+        nb_rx = spp_eth_rx_burst(rx->dpdk_port, 0, bufs, MAX_PKT_BURST);
+
+Each of received packet is copied with ``rte_pktmbuf_clone()`` if you use
+``shallowcopy`` defined as default in Makefile.
+If you use ``deepcopy``, several mbuf objects are allocated for copying.
+
+.. code-block:: c
+
+                for (cnt = 0; cnt < nb_rx; cnt++) {
+                        org_mbuf = bufs[cnt];
+                        rte_prefetch0(rte_pktmbuf_mtod(org_mbuf, void *));
+   #ifdef SPP_MIRROR_SHALLOWCOPY
+                        /* Shallow Copy */
+			copybufs[cnt] = rte_pktmbuf_clone(org_mbuf,
+                                                        g_mirror_pool);
+
+   #else
+                        struct rte_mbuf *mirror_mbuf = NULL;
+                        struct rte_mbuf **mirror_mbufs = &mirror_mbuf;
+                        struct rte_mbuf *copy_mbuf = NULL;
+                        /* Deep Copy */
+                        do {
+                                copy_mbuf = rte_pktmbuf_alloc(g_mirror_pool);
+                                if (unlikely(copy_mbuf == NULL)) {
+                                        rte_pktmbuf_free(mirror_mbuf);
+                                        mirror_mbuf = NULL;
+                                        RTE_LOG(INFO, MIRROR,
+                                                "copy mbuf alloc NG!\n");
+                                        break;
+                                }
+
+                                copy_mbuf->data_off = org_mbuf->data_off;
+                                ...
+                                copy_mbuf->packet_type = org_mbuf->packet_type;
+
+                                rte_memcpy(rte_pktmbuf_mtod(copy_mbuf, char *),
+                                        rte_pktmbuf_mtod(org_mbuf, char *),
+                                        org_mbuf->data_len);
+
+                                *mirror_mbufs = copy_mbuf;
+                                mirror_mbufs = &copy_mbuf->next;
+                        } while ((org_mbuf = org_mbuf->next) != NULL);
+			copybufs[cnt] = mirror_mbuf;
+
+   #endif /* SPP_MIRROR_SHALLOWCOPY */
+                }
+		if (cnt != 0)
+                        nb_tx2 = spp_eth_tx_burst(tx->dpdk_port, 0,
+								copybufs, cnt);
diff --git a/docs/guides/design/impl/spp_pcap.rst b/docs/guides/design/impl/spp_pcap.rst
new file mode 100644
index 0000000..8c3f624
--- /dev/null
+++ b/docs/guides/design/impl/spp_pcap.rst
@@ -0,0 +1,144 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
+
+.. _spp_pcap_explain:
+
+spp_pcap
+========
+
+The following sections provide some explanation of the code.
+
+Initializing
+------------
+
+A manager thread of ``spp_pcap`` initialize eal by ``rte_eal_init()``.
+Then each of component threads are launched by
+``rte_eal_remote_launch()``.
+
+
+.. code-block:: c
+
+    /* spp_pcap.c */
+    int ret_dpdk = rte_eal_init(argc, argv);
+
+    /* Start worker threads of classifier and forwarder */
+    RTE_LCORE_FOREACH_SLAVE(lcore_id) {
+        g_core_info[lcore_id].core[0].num = 1;
+        g_pcap_info[lcore_id].thread_no = thread_no++;
+        rte_eal_remote_launch(slave_main, NULL, lcore_id);
+    }
+
+
+Main function of slave thread
+-----------------------------
+
+``slave_main()`` is called from ``rte_eal_remote_launch()``.
+It call ``pcap_proc_receive()`` or ``pcap_proc_write()``
+depending on the core assignment.
+``pcap_proc_write();`` provides function for ``receive``,
+and ``pcap_proc_write();`` provides function for ``write``.
+
+.. code-block:: c
+
+    /* spp_pcap.c */
+        int ret = SPP_RET_OK;
+        unsigned int lcore_id = rte_lcore_id();
+        enum spp_core_status status = SPP_CORE_STOP;
+        struct pcap_mng_info *pcap_info = &g_pcap_info[lcore_id];
+
+        if (pcap_info->thread_no == 0) {
+                RTE_LOG(INFO, PCAP, "Core[%d] Start recive.\n", lcore_id);
+                pcap_info->type = TYPE_RECIVE;
+        } else {
+                RTE_LOG(INFO, PCAP, "Core[%d] Start write(%d).\n",
+                                        lcore_id, pcap_info->thread_no);
+                pcap_info->type = TYPE_WRITE;
+        }
+        RTE_LOG(INFO, PCAP, "Core[%d] Start.\n", lcore_id);
+        set_core_status(lcore_id, SPP_CORE_IDLE);
+
+        while ((status = spp_get_core_status(lcore_id)) !=
+                        SPP_CORE_STOP_REQUEST) {
+
+                if (pcap_info->type == TYPE_RECIVE)
+                        ret = pcap_proc_receive(lcore_id);
+                else
+                        ret = pcap_proc_write(lcore_id);
+                if (unlikely(ret != SPP_RET_OK)) {
+                        RTE_LOG(ERR, PCAP, "Core[%d] Thread Error.\n",
+                                                                lcore_id);
+                        break;
+                }
+        }
+
+Receive Pakcet
+--------------
+
+``pcap_proc_receive()`` is the function to realize
+receiving incoming packets. This function is called in the while loop and
+receive packets. Everytime it receves packet via ``spp_eth_rx_burst()``, then
+it enqueue those packet into the ring using ``rte_ring_enqueue_bulk()``.
+Those packets are trnsfered to ``write`` cores via the ring.
+
+
+.. code-block:: c
+
+        /* spp_pcap.c */
+        /* Receive packets */
+        rx = &g_pcap_option.port_cap;
+
+        nb_rx = spp_eth_rx_burst(rx->dpdk_port, 0, bufs, MAX_PKT_BURST);
+        if (unlikely(nb_rx == 0))
+                return SPP_RET_OK;
+
+        /* Write ring packets */
+
+        nb_tx = rte_ring_enqueue_bulk(write_ring, (void *)bufs, nb_rx, NULL);
+
+        /* Discard remained packets to release mbuf */
+
+        if (unlikely(nb_tx < nb_rx)) {
+                for (buf = nb_tx; buf < nb_rx; buf++)
+                        rte_pktmbuf_free(bufs[buf]);
+        }
+
+        return SPP_RET_OK;
+
+
+Write Packet
+------------
+
+In ``pcap_proc_write()``, it dequeue packets from ring.Then it writes to
+storage after data compression using LZ4 libraries. ``compress_file_packet``
+is the function to write packet with LZ4. LZ4 is lossless compression
+algorithm, providing compression speed > 500 MB/s per core, scalable with
+multi-cores CPU. It features an extremely fast decoder, with speed in multiple
+GB/s per core, typically reaching RAM speed limits on multi-core systems.
+Please see details in
+`LZ4
+<https://github.com/lz4/lz4>`_
+
+.. code-block:: c
+
+        /* Read packets */
+        nb_rx =  rte_ring_dequeue_bulk(read_ring, (void *)bufs, MAX_PKT_BURST,
+                                                                        NULL);
+        if (unlikely(nb_rx == 0))
+                return SPP_RET_OK;
+
+        for (buf = 0; buf < nb_rx; buf++) {
+                mbuf = bufs[buf];
+                rte_prefetch0(rte_pktmbuf_mtod(mbuf, void *));
+                if (compress_file_packet(&g_pcap_info[lcore_id], mbuf)
+                                                        != SPP_RET_OK) {
+                        RTE_LOG(ERR, PCAP, "capture file write error: "
+                                "%d (%s)\n", errno, strerror(errno));
+                        ret = SPP_RET_NG;
+                        info->status = SPP_CAPTURE_IDLE;
+                        compress_file_operation(info, CLOSE_MODE);
+                        break;
+                }
+        }
+        for (buf = nb_rx; buf < nb_rx; buf++)
+                rte_pktmbuf_free(bufs[buf]);
+        return ret;
diff --git a/docs/guides/design/impl/spp_vf.rst b/docs/guides/design/impl/spp_vf.rst
new file mode 100644
index 0000000..76e4a4c
--- /dev/null
+++ b/docs/guides/design/impl/spp_vf.rst
@@ -0,0 +1,457 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2014 Intel Corporation
+
+.. _spp_vf_explain_spp_vf:
+
+spp_vf
+======
+
+The following sections provide some explanation of the code.
+
+Initializing
+------------
+
+A manager thread of ``spp_vf`` initialize eal by ``rte_eal_init()``.
+Then each of component threads are launched by
+``rte_eal_remote_launch()``.
+
+
+.. code-block:: c
+
+    /* spp_vf.c */
+    int ret_dpdk = rte_eal_init(argc, argv);
+
+    /* Start worker threads of classifier and forwarder */
+    unsigned int lcore_id = 0;
+    RTE_LCORE_FOREACH_SLAVE(lcore_id) {
+            rte_eal_remote_launch(slave_main, NULL, lcore_id);
+    }
+
+
+Main function of slave thread
+-----------------------------
+
+``slave_main()`` is called from ``rte_eal_remote_launch()``.
+It call ``spp_classifier_mac_do()`` or ``spp_forward()`` depending
+on the component command setting.
+``spp_classifier_mac_do()`` provides function for classifier,
+and ``spp_forward()`` provides forwarder and merger.
+
+.. code-block:: c
+
+    /* spp_vf.c */
+    RTE_LOG(INFO, APP, "Core[%d] Start.\n", lcore_id);
+    set_core_status(lcore_id, SPP_CORE_IDLE);
+
+    while ((status = spp_get_core_status(lcore_id)) !=
+            SPP_CORE_STOP_REQUEST) {
+            if (status != SPP_CORE_FORWARD)
+                    continue;
+
+            if (spp_check_core_index(lcore_id)) {
+                    /* Setting with the flush command trigger. */
+                    info->ref_index = (info->upd_index+1) %
+                            SPP_INFO_AREA_MAX;
+                    core = get_core_info(lcore_id);
+            }
+
+            for (cnt = 0; cnt < core->num; cnt++) {
+                    if (spp_get_component_type(lcore_id) ==
+                                    SPP_COMPONENT_CLASSIFIER_MAC) {
+                            /* Classifier loops inside the function. */
+                            ret = spp_classifier_mac_do(core->id[cnt]);
+                            break;
+                    }
+
+                    /*
+                     * Forward / Merge returns at once.
+                     * It is for processing multiple components.
+                     */
+                    ret = spp_forward(core->id[cnt]);
+                    if (unlikely(ret != 0))
+                            break;
+            }
+            if (unlikely(ret != 0)) {
+                    RTE_LOG(ERR, APP,
+                            "Core[%d] Component Error. (id = %d)\n",
+                            lcore_id, core->id[cnt]);
+                    break;
+            }
+    }
+
+    set_core_status(lcore_id, SPP_CORE_STOP);
+    RTE_LOG(INFO, APP, "Core[%d] End.\n", lcore_id);
+
+Data structure of classifier table
+----------------------------------
+
+``spp_classifier_mac_do()`` lookup following data defined in
+``classifier_mac.c``,
+when it process the packets.
+Configuration of classifier is stored in the structure of
+``classified_data``, ``classifier_mac_info`` and
+``classifier_mac_mng_info``.
+The ``classified_data`` has member variables for expressing the port
+to be classified, ``classifier_mac_info`` has member variables
+for determining the direction of packets such as hash tables.
+Classifier manages two ``classifier_mac_info``, one is for updating by
+commands, the other is for looking up to process packets.
+Then the ``classifier_mac_mng_info`` has
+two(``NUM_CLASSIFIER_MAC_INFO``) ``classifier_mac_info``
+and index number for updating or reference.
+
+.. code-block:: c
+
+    /* classifier_mac.c */
+    /* classified data (destination port, target packets, etc) */
+    struct classified_data {
+            /* interface type (see "enum port_type") */
+            enum port_type  iface_type;
+
+            /* index of ports handled by classifier */
+            int             iface_no;
+
+            /* id for interface generated by spp_vf */
+            int             iface_no_global;
+
+            /* port id generated by DPDK */
+            uint16_t        port;
+
+            /* the number of packets in pkts[] */
+            uint16_t        num_pkt;
+
+            /* packet array to be classified */
+            struct rte_mbuf *pkts[MAX_PKT_BURST];
+    };
+
+    /* classifier information */
+    struct classifier_mac_info {
+            /* component name */
+            char name[SPP_NAME_STR_LEN];
+
+            /* hash table keeps classifier_table */
+            struct rte_hash *classifier_table;
+
+            /* number of valid classification */
+            int num_active_classified;
+
+            /* index of valid classification */
+            int active_classifieds[RTE_MAX_ETHPORTS];
+
+            /* index of default classification */
+            int default_classified;
+
+            /* number of transmission ports */
+            int n_classified_data_tx;
+
+            /* receive port handled by classifier */
+            struct classified_data classified_data_rx;
+
+            /* transmission ports handled by classifier */
+            struct classified_data classified_data_tx[RTE_MAX_ETHPORTS];
+    };
+
+    /* classifier management information */
+    struct classifier_mac_mng_info {
+            /* classifier information */
+            struct classifier_mac_info info[NUM_CLASSIFIER_MAC_INFO];
+
+            /* Reference index number for classifier information */
+            volatile int ref_index;
+
+            /* Update index number for classifier information */
+            volatile int upd_index;
+    };
+
+
+Packet processing in classifier
+-------------------------------
+
+In ``spp_classifier_mac_do()``, it receives packets from rx port and
+send them to destinations with ``classify_packet()``.
+``classifier_info`` is an argument of ``classify_packet()`` and is used
+to decide the destinations.
+
+.. code-block:: c
+
+    /* classifier_mac.c */
+        while (likely(spp_get_core_status(lcore_id) == SPP_CORE_FORWARD) &&
+                        likely(spp_check_core_index(lcore_id) == 0)) {
+                /* change index of update side */
+                change_update_index(classifier_mng_info, id);
+
+                /* decide classifier information of the current cycle */
+                classifier_info = classifier_mng_info->info +
+                                classifier_mng_info->ref_index;
+                classified_data_rx = &classifier_info->classified_data_rx;
+                classified_data_tx = classifier_info->classified_data_tx;
+
+                /* drain tx packets, if buffer is not filled for interval */
+                cur_tsc = rte_rdtsc();
+                if (unlikely(cur_tsc - prev_tsc > drain_tsc)) {
+                        for (i = 0; i < classifier_info->n_classified_data_tx;
+                                        i++) {
+                                if (likely(classified_data_tx[i].num_pkt == 0))
+                                        continue;
+
+                                RTE_LOG(DEBUG, SPP_CLASSIFIER_MAC,
+                                                "transmit packets (drain). "
+                                                "index=%d, "
+                                                "num_pkt=%hu, "
+                                                "interval=%lu\n",
+                                                i,
+                                                classified_data_tx[i].num_pkt,
+                                                cur_tsc - prev_tsc);
+                                transmit_packet(&classified_data_tx[i]);
+                        }
+                        prev_tsc = cur_tsc;
+                }
+
+                if (classified_data_rx->iface_type == UNDEF)
+                        continue;
+
+                /* retrieve packets */
+                n_rx = rte_eth_rx_burst(classified_data_rx->port, 0,
+                                rx_pkts, MAX_PKT_BURST);
+                if (unlikely(n_rx == 0))
+                        continue;
+
+    #ifdef SPP_RINGLATENCYSTATS_ENABLE
+                    if (classified_data_rx->iface_type == RING)
+                            spp_ringlatencystats_calculate_latency(
+                                            classified_data_rx->iface_no,
+                                            rx_pkts, n_rx);
+    #endif
+
+                /* classify and transmit (filled) */
+                classify_packet(rx_pkts, n_rx, classifier_info,
+                                classified_data_tx);
+        }
+
+Classifying the packets
+-----------------------
+
+``classify_packet()`` uses hash function of DPDK to determine
+destination.
+Hash has MAC address as Key, it retrieves destination information
+from destination MAC address in the packet.
+
+.. code-block:: c
+
+    for (i = 0; i < n_rx; i++) {
+            eth = rte_pktmbuf_mtod(rx_pkts[i], struct ether_hdr *);
+
+            /* find in table (by destination mac address)*/
+            ret = rte_hash_lookup_data(classifier_info->classifier_table,
+                            (const void *)&eth->d_addr, &lookup_data);
+            if (ret < 0) {
+                    /* L2 multicast(include broadcast) ? */
+                    if (unlikely(is_multicast_ether_addr(&eth->d_addr))) {
+                            RTE_LOG(DEBUG, SPP_CLASSIFIER_MAC,
+                                            "multicast mac address.\n");
+                            handle_l2multicast_packet(rx_pkts[i],
+                                            classifier_info,
+                                            classified_data);
+                            continue;
+                    }
+
+                    /* if no default, drop packet */
+                    if (unlikely(classifier_info->default_classified ==
+                                    -1)) {
+                            ether_format_addr(mac_addr_str,
+                                            sizeof(mac_addr_str),
+                                            &eth->d_addr);
+                            RTE_LOG(ERR, SPP_CLASSIFIER_MAC,
+                                            "unknown mac address. "
+                                            "ret=%d, mac_addr=%s\n",
+                                            ret, mac_addr_str);
+                            rte_pktmbuf_free(rx_pkts[i]);
+                            continue;
+                    }
+
+                    /* to default classified */
+                    RTE_LOG(DEBUG, SPP_CLASSIFIER_MAC,
+                                    "to default classified.\n");
+                    lookup_data = (void *)(long)classifier_info->
+                                    default_classified;
+            }
+
+            /*
+             * set mbuf pointer to tx buffer
+             * and transmit packet, if buffer is filled
+             */
+            push_packet(rx_pkts[i], classified_data + (long)lookup_data);
+    }
+
+
+Packet processing in forwarder and merger
+-----------------------------------------
+
+Configuration data for forwarder and merger is stored as structured
+tables ``forward_rxtx``, ``forward_path`` and ``forward_info``.
+The ``forward_rxtx`` has two member variables for expressing the port
+to be sent(tx) and to be receive(rx),
+``forward_path`` has member variables for expressing the data path.
+Like ``classifier_mac_info``, ``forward_info`` has two tables,
+one is for updating by commands, the other is for looking up to process
+packets.
+
+
+.. code-block:: c
+
+    /* spp_forward.c */
+    /* A set of port info of rx and tx */
+    struct forward_rxtx {
+            struct spp_port_info rx; /* rx port */
+            struct spp_port_info tx; /* tx port */
+    };
+
+    /* Information on the path used for forward. */
+    struct forward_path {
+            char name[SPP_NAME_STR_LEN];    /* component name */
+            volatile enum spp_component_type type;
+                                            /* component type */
+            int num;  /* number of receive ports */
+            struct forward_rxtx ports[RTE_MAX_ETHPORTS];
+                                            /* port used for transfer */
+    };
+
+    /* Information for forward. */
+    struct forward_info {
+            volatile int ref_index; /* index to reference area */
+            volatile int upd_index; /* index to update area    */
+            struct forward_path path[SPP_INFO_AREA_MAX];
+                                    /* Information of data path */
+    };
+
+
+Forward and merge the packets
+-----------------------------
+
+``spp_forward()`` defined in ``spp_forward.c`` is a main function
+for both forwarder and merger.
+``spp_forward()`` simply passes packet received from rx port to
+tx port of the pair.
+
+.. code-block:: c
+
+    /* spp_forward.c */
+            for (cnt = 0; cnt < num; cnt++) {
+                    rx = &path->ports[cnt].rx;
+                    tx = &path->ports[cnt].tx;
+
+                    /* Receive packets */
+                    nb_rx = rte_eth_rx_burst(
+                            rx->dpdk_port, 0, bufs, MAX_PKT_BURST);
+                    if (unlikely(nb_rx == 0))
+                            continue;
+
+    #ifdef SPP_RINGLATENCYSTATS_ENABLE
+                    if (rx->iface_type == RING)
+                            spp_ringlatencystats_calculate_latency(
+                                            rx->iface_no,
+                                            bufs, nb_rx);
+
+                    if (tx->iface_type == RING)
+                            spp_ringlatencystats_add_time_stamp(
+                                            tx->iface_no,
+                                            bufs, nb_rx);
+    #endif /* SPP_RINGLATENCYSTATS_ENABLE */
+
+                    /* Send packets */
+                    if (tx->dpdk_port >= 0)
+                            nb_tx = rte_eth_tx_burst(
+                                    tx->dpdk_port, 0, bufs, nb_rx);
+
+                    /* Discard remained packets to release mbuf */
+                    if (unlikely(nb_tx < nb_rx)) {
+                            for (buf = nb_tx; buf < nb_rx; buf++)
+                                    rte_pktmbuf_free(bufs[buf]);
+                    }
+            }
+
+
+L2 Multicast Support
+--------------------
+
+SPP_VF also supports multicast for resolving ARP requests.
+It is implemented as ``handle_l2multicast_packet()`` and called from
+``classify_packet()`` for incoming multicast packets.
+
+.. code-block:: c
+
+  /* classify_packet() in classifier_mac.c */
+               /* L2 multicast(include broadcast) ? */
+               if (unlikely(is_multicast_ether_addr(&eth->d_addr))) {
+                       RTE_LOG(DEBUG, SPP_CLASSIFIER_MAC,
+                                       "multicast mac address.\n");
+                       handle_l2multicast_packet(rx_pkts[i],
+                                       classifier_info,
+                                       classified_data);
+                       continue;
+               }
+
+For distributing multicast packet, it is cloned with
+``rte_mbuf_refcnt_update()``.
+
+.. code-block:: c
+
+    /* classifier_mac.c */
+    /* handle L2 multicast(include broadcast) packet */
+    static inline void
+    handle_l2multicast_packet(struct rte_mbuf *pkt,
+                    struct classifier_mac_info *classifier_info,
+                    struct classified_data *classified_data)
+    {
+            int i;
+
+            if (unlikely(classifier_info->num_active_classified == 0)) {
+                    RTE_LOG(ERR,
+                            SPP_CLASSIFIER_MAC,
+                            "No mac address.(l2 multicast packet)\n");
+                    rte_pktmbuf_free(pkt);
+                    return;
+            }
+
+            rte_mbuf_refcnt_update(pkt,
+                    (classifier_info->num_active_classified - 1));
+
+            for (i = 0; i < classifier_info->num_active_classified; i++) {
+                    push_packet(pkt, classified_data +
+                            (long)classifier_info->active_classifieds[i]);
+            }
+    }
+
+Two phase update for forwarding
+-------------------------------
+
+Updating netowrk configuration in ``spp_vf`` is done in a short period of
+time, but not so short considering the time scale of packet forwarding.
+It might forward packets before the updating is completed possibly.
+To avoid such kind of situation, ``spp_vf`` has two phase update mechanism.
+Status info is referred from forwarding process after the update is completed.
+
+.. code-block:: c
+
+        spp_flush(void)
+        {
+                int ret = SPP_RET_NG;
+                struct cancel_backup_info *backup_info = NULL;
+
+                spp_get_mng_data_addr(NULL, NULL, NULL,
+                                        NULL, NULL, NULL, &backup_info);
+
+                /* Initial setting of each interface. */
+                ret = flush_port();
+                        if (ret < SPP_RET_OK)
+                        return ret;
+
+                /* Flush of core index. */
+                flush_core();
+
+                /* Flush of component */
+                ret = flush_component();
+
+                backup_mng_info(backup_info);
+                return ret;
+        }
diff --git a/docs/guides/design/index.rst b/docs/guides/design/index.rst
index 68ebaa8..f8d982d 100644
--- a/docs/guides/design/index.rst
+++ b/docs/guides/design/index.rst
@@ -13,3 +13,4 @@ Design
    spp_controller
    spp_primary
    spp_secondary
+   impl/index
diff --git a/docs/guides/index.rst b/docs/guides/index.rst
index a64a7a3..1f4a5fb 100644
--- a/docs/guides/index.rst
+++ b/docs/guides/index.rst
@@ -14,7 +14,6 @@ SPP documentation
    use_cases/index
    commands/index
    tools/index
-   spp_vf/index
    api_ref/index
 
 This documentation is the latest tagged version, but some of the latest
diff --git a/docs/guides/spp_vf/explain/functions_mirror.rst b/docs/guides/spp_vf/explain/functions_mirror.rst
deleted file mode 100644
index bb4548e..0000000
--- a/docs/guides/spp_vf/explain/functions_mirror.rst
+++ /dev/null
@@ -1,127 +0,0 @@
-.. SPDX-License-Identifier: BSD-3-Clause
-   Copyright(c) 2018 Nippon Telegraph and Telephone Corporation
-
-.. _spp_vf_explain_spp_mirror:
-
-spp_mirror
-==========
-
-Initializing
-------------
-
-A main thread of ``spp_mirror`` initialize eal by ``rte_eal_init()``.
-Then each of worker threads is launched from ``rte_eal_remote_launch()``
-by giving a function ``slave_main()`` for forwarding.
-
-.. code-block:: c
-
-    /* spp_mirror.c */
-    int ret_dpdk = rte_eal_init(argc, argv);
-
-    /* Start worker threads of classifier and forwarder */
-    unsigned int lcore_id = 0;
-    RTE_LCORE_FOREACH_SLAVE(lcore_id) {
-            rte_eal_remote_launch(slave_main, NULL, lcore_id);
-    }
-
-
-Main function of slave thread
------------------------------
-
-In ``slave_main()``, it calls ``mirror_proc()`` in which packet processing for
-duplicating is defined after finding a core on which running the duplicating.
-
-.. code-block:: c
-
-	RTE_LOG(INFO, MIRROR, "Core[%d] Start.\n", lcore_id);
-	set_core_status(lcore_id, SPP_CORE_IDLE);
-
-	while ((status = spp_get_core_status(lcore_id)) !=
-			SPP_CORE_STOP_REQUEST) {
-		if (status != SPP_CORE_FORWARD)
-			continue;
-
-		if (spp_check_core_index(lcore_id)) {
-			/* Setting with the flush command trigger. */
-			info->ref_index = (info->upd_index+1) %
-					SPP_INFO_AREA_MAX;
-			core = get_core_info(lcore_id);
-		}
-
-		for (cnt = 0; cnt < core->num; cnt++) {
-			/*
-			 * mirror returns at once.
-			 * It is for processing multiple components.
-			 */
-			ret = mirror_proc(core->id[cnt]);
-			if (unlikely(ret != 0))
-				break;
-		}
-		if (unlikely(ret != 0)) {
-			RTE_LOG(ERR, MIRROR,
-				"Core[%d] Component Error. (id = %d)\n",
-					lcore_id, core->id[cnt]);
-			break;
-		}
-	}
-
-	set_core_status(lcore_id, SPP_CORE_STOP);
-	RTE_LOG(INFO, MIRROR, "Core[%d] End.\n", lcore_id);
-
-Packet mirroring
-----------------
-
-In ``mirror_proc()``, it receives packets from rx port.
-
-.. code-block:: c
-
-        /* Receive packets */
-        nb_rx = spp_eth_rx_burst(rx->dpdk_port, 0, bufs, MAX_PKT_BURST);
-
-Each of received packet is copied with ``rte_pktmbuf_clone()`` if you use
-``shallowcopy`` defined as default in Makefile.
-If you use ``deepcopy``, several mbuf objects are allocated for copying.
-
-.. code-block:: c
-
-                for (cnt = 0; cnt < nb_rx; cnt++) {
-                        org_mbuf = bufs[cnt];
-                        rte_prefetch0(rte_pktmbuf_mtod(org_mbuf, void *));
-   #ifdef SPP_MIRROR_SHALLOWCOPY
-                        /* Shallow Copy */
-			copybufs[cnt] = rte_pktmbuf_clone(org_mbuf,
-                                                        g_mirror_pool);
-
-   #else
-                        struct rte_mbuf *mirror_mbuf = NULL;
-                        struct rte_mbuf **mirror_mbufs = &mirror_mbuf;
-                        struct rte_mbuf *copy_mbuf = NULL;
-                        /* Deep Copy */
-                        do {
-                                copy_mbuf = rte_pktmbuf_alloc(g_mirror_pool);
-                                if (unlikely(copy_mbuf == NULL)) {
-                                        rte_pktmbuf_free(mirror_mbuf);
-                                        mirror_mbuf = NULL;
-                                        RTE_LOG(INFO, MIRROR,
-                                                "copy mbuf alloc NG!\n");
-                                        break;
-                                }
-
-                                copy_mbuf->data_off = org_mbuf->data_off;
-                                ...
-                                copy_mbuf->packet_type = org_mbuf->packet_type;
-
-                                rte_memcpy(rte_pktmbuf_mtod(copy_mbuf, char *),
-                                        rte_pktmbuf_mtod(org_mbuf, char *),
-                                        org_mbuf->data_len);
-
-                                *mirror_mbufs = copy_mbuf;
-                                mirror_mbufs = &copy_mbuf->next;
-                        } while ((org_mbuf = org_mbuf->next) != NULL);
-			copybufs[cnt] = mirror_mbuf;
-
-   #endif /* SPP_MIRROR_SHALLOWCOPY */
-                }
-		if (cnt != 0)
-                        nb_tx2 = spp_eth_tx_burst(tx->dpdk_port, 0,
-								copybufs, cnt);
diff --git a/docs/guides/spp_vf/explain/functions_pcap.rst b/docs/guides/spp_vf/explain/functions_pcap.rst
deleted file mode 100644
index 8c3f624..0000000
--- a/docs/guides/spp_vf/explain/functions_pcap.rst
+++ /dev/null
@@ -1,144 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2019 Nippon Telegraph and Telephone Corporation
-
-.. _spp_pcap_explain:
-
-spp_pcap
-========
-
-The following sections provide some explanation of the code.
-
-Initializing
-------------
-
-A manager thread of ``spp_pcap`` initialize eal by ``rte_eal_init()``.
-Then each of component threads are launched by
-``rte_eal_remote_launch()``.
-
-
-.. code-block:: c
-
-    /* spp_pcap.c */
-    int ret_dpdk = rte_eal_init(argc, argv);
-
-    /* Start worker threads of classifier and forwarder */
-    RTE_LCORE_FOREACH_SLAVE(lcore_id) {
-        g_core_info[lcore_id].core[0].num = 1;
-        g_pcap_info[lcore_id].thread_no = thread_no++;
-        rte_eal_remote_launch(slave_main, NULL, lcore_id);
-    }
-
-
-Main function of slave thread
------------------------------
-
-``slave_main()`` is called from ``rte_eal_remote_launch()``.
-It call ``pcap_proc_receive()`` or ``pcap_proc_write()``
-depending on the core assignment.
-``pcap_proc_write();`` provides function for ``receive``,
-and ``pcap_proc_write();`` provides function for ``write``.
-
-.. code-block:: c
-
-    /* spp_pcap.c */
-        int ret = SPP_RET_OK;
-        unsigned int lcore_id = rte_lcore_id();
-        enum spp_core_status status = SPP_CORE_STOP;
-        struct pcap_mng_info *pcap_info = &g_pcap_info[lcore_id];
-
-        if (pcap_info->thread_no == 0) {
-                RTE_LOG(INFO, PCAP, "Core[%d] Start recive.\n", lcore_id);
-                pcap_info->type = TYPE_RECIVE;
-        } else {
-                RTE_LOG(INFO, PCAP, "Core[%d] Start write(%d).\n",
-                                        lcore_id, pcap_info->thread_no);
-                pcap_info->type = TYPE_WRITE;
-        }
-        RTE_LOG(INFO, PCAP, "Core[%d] Start.\n", lcore_id);
-        set_core_status(lcore_id, SPP_CORE_IDLE);
-
-        while ((status = spp_get_core_status(lcore_id)) !=
-                        SPP_CORE_STOP_REQUEST) {
-
-                if (pcap_info->type == TYPE_RECIVE)
-                        ret = pcap_proc_receive(lcore_id);
-                else
-                        ret = pcap_proc_write(lcore_id);
-                if (unlikely(ret != SPP_RET_OK)) {
-                        RTE_LOG(ERR, PCAP, "Core[%d] Thread Error.\n",
-                                                                lcore_id);
-                        break;
-                }
-        }
-
-Receive Pakcet
---------------
-
-``pcap_proc_receive()`` is the function to realize
-receiving incoming packets. This function is called in the while loop and
-receive packets. Everytime it receves packet via ``spp_eth_rx_burst()``, then
-it enqueue those packet into the ring using ``rte_ring_enqueue_bulk()``.
-Those packets are trnsfered to ``write`` cores via the ring.
-
-
-.. code-block:: c
-
-        /* spp_pcap.c */
-        /* Receive packets */
-        rx = &g_pcap_option.port_cap;
-
-        nb_rx = spp_eth_rx_burst(rx->dpdk_port, 0, bufs, MAX_PKT_BURST);
-        if (unlikely(nb_rx == 0))
-                return SPP_RET_OK;
-
-        /* Write ring packets */
-
-        nb_tx = rte_ring_enqueue_bulk(write_ring, (void *)bufs, nb_rx, NULL);
-
-        /* Discard remained packets to release mbuf */
-
-        if (unlikely(nb_tx < nb_rx)) {
-                for (buf = nb_tx; buf < nb_rx; buf++)
-                        rte_pktmbuf_free(bufs[buf]);
-        }
-
-        return SPP_RET_OK;
-
-
-Write Packet
-------------
-
-In ``pcap_proc_write()``, it dequeue packets from ring.Then it writes to
-storage after data compression using LZ4 libraries. ``compress_file_packet``
-is the function to write packet with LZ4. LZ4 is lossless compression
-algorithm, providing compression speed > 500 MB/s per core, scalable with
-multi-cores CPU. It features an extremely fast decoder, with speed in multiple
-GB/s per core, typically reaching RAM speed limits on multi-core systems.
-Please see details in
-`LZ4
-<https://github.com/lz4/lz4>`_
-
-.. code-block:: c
-
-        /* Read packets */
-        nb_rx =  rte_ring_dequeue_bulk(read_ring, (void *)bufs, MAX_PKT_BURST,
-                                                                        NULL);
-        if (unlikely(nb_rx == 0))
-                return SPP_RET_OK;
-
-        for (buf = 0; buf < nb_rx; buf++) {
-                mbuf = bufs[buf];
-                rte_prefetch0(rte_pktmbuf_mtod(mbuf, void *));
-                if (compress_file_packet(&g_pcap_info[lcore_id], mbuf)
-                                                        != SPP_RET_OK) {
-                        RTE_LOG(ERR, PCAP, "capture file write error: "
-                                "%d (%s)\n", errno, strerror(errno));
-                        ret = SPP_RET_NG;
-                        info->status = SPP_CAPTURE_IDLE;
-                        compress_file_operation(info, CLOSE_MODE);
-                        break;
-                }
-        }
-        for (buf = nb_rx; buf < nb_rx; buf++)
-                rte_pktmbuf_free(bufs[buf]);
-        return ret;
diff --git a/docs/guides/spp_vf/explain/functions_vf.rst b/docs/guides/spp_vf/explain/functions_vf.rst
deleted file mode 100644
index 76e4a4c..0000000
--- a/docs/guides/spp_vf/explain/functions_vf.rst
+++ /dev/null
@@ -1,457 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-.. _spp_vf_explain_spp_vf:
-
-spp_vf
-======
-
-The following sections provide some explanation of the code.
-
-Initializing
-------------
-
-A manager thread of ``spp_vf`` initialize eal by ``rte_eal_init()``.
-Then each of component threads are launched by
-``rte_eal_remote_launch()``.
-
-
-.. code-block:: c
-
-    /* spp_vf.c */
-    int ret_dpdk = rte_eal_init(argc, argv);
-
-    /* Start worker threads of classifier and forwarder */
-    unsigned int lcore_id = 0;
-    RTE_LCORE_FOREACH_SLAVE(lcore_id) {
-            rte_eal_remote_launch(slave_main, NULL, lcore_id);
-    }
-
-
-Main function of slave thread
------------------------------
-
-``slave_main()`` is called from ``rte_eal_remote_launch()``.
-It call ``spp_classifier_mac_do()`` or ``spp_forward()`` depending
-on the component command setting.
-``spp_classifier_mac_do()`` provides function for classifier,
-and ``spp_forward()`` provides forwarder and merger.
-
-.. code-block:: c
-
-    /* spp_vf.c */
-    RTE_LOG(INFO, APP, "Core[%d] Start.\n", lcore_id);
-    set_core_status(lcore_id, SPP_CORE_IDLE);
-
-    while ((status = spp_get_core_status(lcore_id)) !=
-            SPP_CORE_STOP_REQUEST) {
-            if (status != SPP_CORE_FORWARD)
-                    continue;
-
-            if (spp_check_core_index(lcore_id)) {
-                    /* Setting with the flush command trigger. */
-                    info->ref_index = (info->upd_index+1) %
-                            SPP_INFO_AREA_MAX;
-                    core = get_core_info(lcore_id);
-            }
-
-            for (cnt = 0; cnt < core->num; cnt++) {
-                    if (spp_get_component_type(lcore_id) ==
-                                    SPP_COMPONENT_CLASSIFIER_MAC) {
-                            /* Classifier loops inside the function. */
-                            ret = spp_classifier_mac_do(core->id[cnt]);
-                            break;
-                    }
-
-                    /*
-                     * Forward / Merge returns at once.
-                     * It is for processing multiple components.
-                     */
-                    ret = spp_forward(core->id[cnt]);
-                    if (unlikely(ret != 0))
-                            break;
-            }
-            if (unlikely(ret != 0)) {
-                    RTE_LOG(ERR, APP,
-                            "Core[%d] Component Error. (id = %d)\n",
-                            lcore_id, core->id[cnt]);
-                    break;
-            }
-    }
-
-    set_core_status(lcore_id, SPP_CORE_STOP);
-    RTE_LOG(INFO, APP, "Core[%d] End.\n", lcore_id);
-
-Data structure of classifier table
-----------------------------------
-
-``spp_classifier_mac_do()`` lookup following data defined in
-``classifier_mac.c``,
-when it process the packets.
-Configuration of classifier is stored in the structure of
-``classified_data``, ``classifier_mac_info`` and
-``classifier_mac_mng_info``.
-The ``classified_data`` has member variables for expressing the port
-to be classified, ``classifier_mac_info`` has member variables
-for determining the direction of packets such as hash tables.
-Classifier manages two ``classifier_mac_info``, one is for updating by
-commands, the other is for looking up to process packets.
-Then the ``classifier_mac_mng_info`` has
-two(``NUM_CLASSIFIER_MAC_INFO``) ``classifier_mac_info``
-and index number for updating or reference.
-
-.. code-block:: c
-
-    /* classifier_mac.c */
-    /* classified data (destination port, target packets, etc) */
-    struct classified_data {
-            /* interface type (see "enum port_type") */
-            enum port_type  iface_type;
-
-            /* index of ports handled by classifier */
-            int             iface_no;
-
-            /* id for interface generated by spp_vf */
-            int             iface_no_global;
-
-            /* port id generated by DPDK */
-            uint16_t        port;
-
-            /* the number of packets in pkts[] */
-            uint16_t        num_pkt;
-
-            /* packet array to be classified */
-            struct rte_mbuf *pkts[MAX_PKT_BURST];
-    };
-
-    /* classifier information */
-    struct classifier_mac_info {
-            /* component name */
-            char name[SPP_NAME_STR_LEN];
-
-            /* hash table keeps classifier_table */
-            struct rte_hash *classifier_table;
-
-            /* number of valid classification */
-            int num_active_classified;
-
-            /* index of valid classification */
-            int active_classifieds[RTE_MAX_ETHPORTS];
-
-            /* index of default classification */
-            int default_classified;
-
-            /* number of transmission ports */
-            int n_classified_data_tx;
-
-            /* receive port handled by classifier */
-            struct classified_data classified_data_rx;
-
-            /* transmission ports handled by classifier */
-            struct classified_data classified_data_tx[RTE_MAX_ETHPORTS];
-    };
-
-    /* classifier management information */
-    struct classifier_mac_mng_info {
-            /* classifier information */
-            struct classifier_mac_info info[NUM_CLASSIFIER_MAC_INFO];
-
-            /* Reference index number for classifier information */
-            volatile int ref_index;
-
-            /* Update index number for classifier information */
-            volatile int upd_index;
-    };
-
-
-Packet processing in classifier
--------------------------------
-
-In ``spp_classifier_mac_do()``, it receives packets from rx port and
-send them to destinations with ``classify_packet()``.
-``classifier_info`` is an argument of ``classify_packet()`` and is used
-to decide the destinations.
-
-.. code-block:: c
-
-    /* classifier_mac.c */
-        while (likely(spp_get_core_status(lcore_id) == SPP_CORE_FORWARD) &&
-                        likely(spp_check_core_index(lcore_id) == 0)) {
-                /* change index of update side */
-                change_update_index(classifier_mng_info, id);
-
-                /* decide classifier information of the current cycle */
-                classifier_info = classifier_mng_info->info +
-                                classifier_mng_info->ref_index;
-                classified_data_rx = &classifier_info->classified_data_rx;
-                classified_data_tx = classifier_info->classified_data_tx;
-
-                /* drain tx packets, if buffer is not filled for interval */
-                cur_tsc = rte_rdtsc();
-                if (unlikely(cur_tsc - prev_tsc > drain_tsc)) {
-                        for (i = 0; i < classifier_info->n_classified_data_tx;
-                                        i++) {
-                                if (likely(classified_data_tx[i].num_pkt == 0))
-                                        continue;
-
-                                RTE_LOG(DEBUG, SPP_CLASSIFIER_MAC,
-                                                "transmit packets (drain). "
-                                                "index=%d, "
-                                                "num_pkt=%hu, "
-                                                "interval=%lu\n",
-                                                i,
-                                                classified_data_tx[i].num_pkt,
-                                                cur_tsc - prev_tsc);
-                                transmit_packet(&classified_data_tx[i]);
-                        }
-                        prev_tsc = cur_tsc;
-                }
-
-                if (classified_data_rx->iface_type == UNDEF)
-                        continue;
-
-                /* retrieve packets */
-                n_rx = rte_eth_rx_burst(classified_data_rx->port, 0,
-                                rx_pkts, MAX_PKT_BURST);
-                if (unlikely(n_rx == 0))
-                        continue;
-
-    #ifdef SPP_RINGLATENCYSTATS_ENABLE
-                    if (classified_data_rx->iface_type == RING)
-                            spp_ringlatencystats_calculate_latency(
-                                            classified_data_rx->iface_no,
-                                            rx_pkts, n_rx);
-    #endif
-
-                /* classify and transmit (filled) */
-                classify_packet(rx_pkts, n_rx, classifier_info,
-                                classified_data_tx);
-        }
-
-Classifying the packets
------------------------
-
-``classify_packet()`` uses hash function of DPDK to determine
-destination.
-Hash has MAC address as Key, it retrieves destination information
-from destination MAC address in the packet.
-
-.. code-block:: c
-
-    for (i = 0; i < n_rx; i++) {
-            eth = rte_pktmbuf_mtod(rx_pkts[i], struct ether_hdr *);
-
-            /* find in table (by destination mac address)*/
-            ret = rte_hash_lookup_data(classifier_info->classifier_table,
-                            (const void *)&eth->d_addr, &lookup_data);
-            if (ret < 0) {
-                    /* L2 multicast(include broadcast) ? */
-                    if (unlikely(is_multicast_ether_addr(&eth->d_addr))) {
-                            RTE_LOG(DEBUG, SPP_CLASSIFIER_MAC,
-                                            "multicast mac address.\n");
-                            handle_l2multicast_packet(rx_pkts[i],
-                                            classifier_info,
-                                            classified_data);
-                            continue;
-                    }
-
-                    /* if no default, drop packet */
-                    if (unlikely(classifier_info->default_classified ==
-                                    -1)) {
-                            ether_format_addr(mac_addr_str,
-                                            sizeof(mac_addr_str),
-                                            &eth->d_addr);
-                            RTE_LOG(ERR, SPP_CLASSIFIER_MAC,
-                                            "unknown mac address. "
-                                            "ret=%d, mac_addr=%s\n",
-                                            ret, mac_addr_str);
-                            rte_pktmbuf_free(rx_pkts[i]);
-                            continue;
-                    }
-
-                    /* to default classified */
-                    RTE_LOG(DEBUG, SPP_CLASSIFIER_MAC,
-                                    "to default classified.\n");
-                    lookup_data = (void *)(long)classifier_info->
-                                    default_classified;
-            }
-
-            /*
-             * set mbuf pointer to tx buffer
-             * and transmit packet, if buffer is filled
-             */
-            push_packet(rx_pkts[i], classified_data + (long)lookup_data);
-    }
-
-
-Packet processing in forwarder and merger
------------------------------------------
-
-Configuration data for forwarder and merger is stored as structured
-tables ``forward_rxtx``, ``forward_path`` and ``forward_info``.
-The ``forward_rxtx`` has two member variables for expressing the port
-to be sent(tx) and to be receive(rx),
-``forward_path`` has member variables for expressing the data path.
-Like ``classifier_mac_info``, ``forward_info`` has two tables,
-one is for updating by commands, the other is for looking up to process
-packets.
-
-
-.. code-block:: c
-
-    /* spp_forward.c */
-    /* A set of port info of rx and tx */
-    struct forward_rxtx {
-            struct spp_port_info rx; /* rx port */
-            struct spp_port_info tx; /* tx port */
-    };
-
-    /* Information on the path used for forward. */
-    struct forward_path {
-            char name[SPP_NAME_STR_LEN];    /* component name */
-            volatile enum spp_component_type type;
-                                            /* component type */
-            int num;  /* number of receive ports */
-            struct forward_rxtx ports[RTE_MAX_ETHPORTS];
-                                            /* port used for transfer */
-    };
-
-    /* Information for forward. */
-    struct forward_info {
-            volatile int ref_index; /* index to reference area */
-            volatile int upd_index; /* index to update area    */
-            struct forward_path path[SPP_INFO_AREA_MAX];
-                                    /* Information of data path */
-    };
-
-
-Forward and merge the packets
------------------------------
-
-``spp_forward()`` defined in ``spp_forward.c`` is a main function
-for both forwarder and merger.
-``spp_forward()`` simply passes packet received from rx port to
-tx port of the pair.
-
-.. code-block:: c
-
-    /* spp_forward.c */
-            for (cnt = 0; cnt < num; cnt++) {
-                    rx = &path->ports[cnt].rx;
-                    tx = &path->ports[cnt].tx;
-
-                    /* Receive packets */
-                    nb_rx = rte_eth_rx_burst(
-                            rx->dpdk_port, 0, bufs, MAX_PKT_BURST);
-                    if (unlikely(nb_rx == 0))
-                            continue;
-
-    #ifdef SPP_RINGLATENCYSTATS_ENABLE
-                    if (rx->iface_type == RING)
-                            spp_ringlatencystats_calculate_latency(
-                                            rx->iface_no,
-                                            bufs, nb_rx);
-
-                    if (tx->iface_type == RING)
-                            spp_ringlatencystats_add_time_stamp(
-                                            tx->iface_no,
-                                            bufs, nb_rx);
-    #endif /* SPP_RINGLATENCYSTATS_ENABLE */
-
-                    /* Send packets */
-                    if (tx->dpdk_port >= 0)
-                            nb_tx = rte_eth_tx_burst(
-                                    tx->dpdk_port, 0, bufs, nb_rx);
-
-                    /* Discard remained packets to release mbuf */
-                    if (unlikely(nb_tx < nb_rx)) {
-                            for (buf = nb_tx; buf < nb_rx; buf++)
-                                    rte_pktmbuf_free(bufs[buf]);
-                    }
-            }
-
-
-L2 Multicast Support
---------------------
-
-SPP_VF also supports multicast for resolving ARP requests.
-It is implemented as ``handle_l2multicast_packet()`` and called from
-``classify_packet()`` for incoming multicast packets.
-
-.. code-block:: c
-
-  /* classify_packet() in classifier_mac.c */
-               /* L2 multicast(include broadcast) ? */
-               if (unlikely(is_multicast_ether_addr(&eth->d_addr))) {
-                       RTE_LOG(DEBUG, SPP_CLASSIFIER_MAC,
-                                       "multicast mac address.\n");
-                       handle_l2multicast_packet(rx_pkts[i],
-                                       classifier_info,
-                                       classified_data);
-                       continue;
-               }
-
-For distributing multicast packet, it is cloned with
-``rte_mbuf_refcnt_update()``.
-
-.. code-block:: c
-
-    /* classifier_mac.c */
-    /* handle L2 multicast(include broadcast) packet */
-    static inline void
-    handle_l2multicast_packet(struct rte_mbuf *pkt,
-                    struct classifier_mac_info *classifier_info,
-                    struct classified_data *classified_data)
-    {
-            int i;
-
-            if (unlikely(classifier_info->num_active_classified == 0)) {
-                    RTE_LOG(ERR,
-                            SPP_CLASSIFIER_MAC,
-                            "No mac address.(l2 multicast packet)\n");
-                    rte_pktmbuf_free(pkt);
-                    return;
-            }
-
-            rte_mbuf_refcnt_update(pkt,
-                    (classifier_info->num_active_classified - 1));
-
-            for (i = 0; i < classifier_info->num_active_classified; i++) {
-                    push_packet(pkt, classified_data +
-                            (long)classifier_info->active_classifieds[i]);
-            }
-    }
-
-Two phase update for forwarding
--------------------------------
-
-Updating netowrk configuration in ``spp_vf`` is done in a short period of
-time, but not so short considering the time scale of packet forwarding.
-It might forward packets before the updating is completed possibly.
-To avoid such kind of situation, ``spp_vf`` has two phase update mechanism.
-Status info is referred from forwarding process after the update is completed.
-
-.. code-block:: c
-
-        spp_flush(void)
-        {
-                int ret = SPP_RET_NG;
-                struct cancel_backup_info *backup_info = NULL;
-
-                spp_get_mng_data_addr(NULL, NULL, NULL,
-                                        NULL, NULL, NULL, &backup_info);
-
-                /* Initial setting of each interface. */
-                ret = flush_port();
-                        if (ret < SPP_RET_OK)
-                        return ret;
-
-                /* Flush of core index. */
-                flush_core();
-
-                /* Flush of component */
-                ret = flush_component();
-
-                backup_mng_info(backup_info);
-                return ret;
-        }
diff --git a/docs/guides/spp_vf/explain/index.rst b/docs/guides/spp_vf/explain/index.rst
deleted file mode 100644
index d5d108f..0000000
--- a/docs/guides/spp_vf/explain/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-Explanation
-===========
-
-.. toctree::
-   :maxdepth: 2
-
-   functions_vf
-   functions_mirror
-   functions_pcap
diff --git a/docs/guides/spp_vf/index.rst b/docs/guides/spp_vf/index.rst
deleted file mode 100644
index 27ab16b..0000000
--- a/docs/guides/spp_vf/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-..  SPDX-License-Identifier: BSD-3-Clause
-    Copyright(c) 2010-2014 Intel Corporation
-
-SPP VF
-===========
-
-.. toctree::
-   :maxdepth: 1
-   :numbered:
-
-   explain/index
-- 
2.7.4

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

* [spp] [PATCH 14/20] docs: move image of ICMP usecase of spp_vf
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (12 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 13/20] docs: remove SPP VF ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 15/20] docs: revise labels of image of spp_vf usecase ogawa.yasufumi
                   ` (5 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to move image of usecase of spp_vf classifying ICMP
packet.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 .../images/spp_vf/basic_usecase_vf_nwconfig.svg    | 752 ---------------------
 docs/guides/images/usecases/vf_cls_icmp_nwconf.svg | 752 +++++++++++++++++++++
 docs/guides/use_cases/spp_vf.rst                   |   2 +-
 3 files changed, 753 insertions(+), 753 deletions(-)
 delete mode 100644 docs/guides/images/spp_vf/basic_usecase_vf_nwconfig.svg
 create mode 100644 docs/guides/images/usecases/vf_cls_icmp_nwconf.svg

diff --git a/docs/guides/images/spp_vf/basic_usecase_vf_nwconfig.svg b/docs/guides/images/spp_vf/basic_usecase_vf_nwconfig.svg
deleted file mode 100644
index fac33e0..0000000
--- a/docs/guides/images/spp_vf/basic_usecase_vf_nwconfig.svg
+++ /dev/null
@@ -1,752 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="229.5166mm"
-   height="116.08863mm"
-   viewBox="0 0 813.24765 411.33763"
-   id="svg9270"
-   version="1.1"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="simple_usecase_vf_nwconfig.svg"
-   inkscape:export-filename="/Users/ogawa/Pictures/usecase1_nwconfig.png"
-   inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
-  <defs
-     id="defs9272">
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker39317"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path39319"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker38983"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path38985"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker34331"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path34333"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker33707"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path33709"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker24437"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path24439"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker21327"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path21329"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker21101"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path21103"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker17545"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path17547"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker17463"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path17465"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker17387"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path17389"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker17317"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path17319"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker17139"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path17141"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path14207"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path14210"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path14192"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker17545-6"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         id="path17547-8"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker34331-1"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path34333-3" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.95"
-     inkscape:cx="508.02756"
-     inkscape:cy="192.96227"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer7"
-     showgrid="false"
-     inkscape:window-width="1280"
-     inkscape:window-height="962"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:snap-page="false"
-     fit-margin-bottom="5"
-     fit-margin-right="5"
-     fit-margin-top="5"
-     fit-margin-left="5"
-     inkscape:snap-text-baseline="true"
-     inkscape:snap-grids="false"
-     inkscape:snap-to-guides="false" />
-  <metadata
-     id="metadata9275">
-    <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="Background"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-45.036557,-532.23799)"
-     style="display:inline"
-     sodipodi:insensitive="true" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Host"
-     transform="translate(-45.036557,-223.97025)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13751"
-       width="540.69476"
-       height="373.85947"
-       x="299.40421"
-       y="242.15553" />
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13753"
-       width="191.17857"
-       height="374.90881"
-       x="63.22184"
-       y="242.21375" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13781"
-       width="59.092819"
-       height="79.092819"
-       x="194.45229"
-       y="336.42303" />
-    <path
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 194.98989,528.03453 v -39.53299 h 29.53299 29.53299 v 39.53299 39.53299 h -29.53299 -29.53299 z"
-       id="path13785"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13849"
-       width="71.017067"
-       height="79.045731"
-       x="300.09851"
-       y="334.80984" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13851"
-       width="69.061523"
-       height="79.085403"
-       x="299.91971"
-       y="489.08701" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13887"
-       cx="586.05249"
-       cy="348.07693"
-       rx="37.18409"
-       ry="20.624996" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13893"
-       cx="585.75403"
-       cy="399.82135"
-       rx="37.031242"
-       ry="19.561867" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13895"
-       cx="584.49115"
-       cy="503.65552"
-       rx="37.031246"
-       ry="19.514225" />
-    <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path13897"
-       cx="584.95148"
-       cy="557.33405"
-       rx="37.031246"
-       ry="19.625351" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="VM"
-     transform="translate(-45.036557,-223.97025)" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Processes"
-     transform="translate(-45.036557,-223.97025)">
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749976;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13924"
-       width="73.408455"
-       height="39.186874"
-       x="418.27637"
-       y="356.5462"
-       ry="19.593437"
-       rx="19.593437" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749976;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13977"
-       width="73.357582"
-       height="39.111198"
-       x="418.98126"
-       y="506.45963"
-       ry="18.15877"
-       rx="22.00881" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13981"
-       width="74.062492"
-       height="39.024136"
-       x="647.30579"
-       y="427.00555"
-       ry="16.364935"
-       rx="16.364935" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13983"
-       width="74.062485"
-       height="38.965855"
-       x="739.38965"
-       y="427.06384"
-       ry="18.091263"
-       rx="18.091263" />
-    <rect
-       style="opacity:1;fill:#afdde9;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect14176"
-       width="79.393723"
-       height="50.181725"
-       x="90.432533"
-       y="421.46158"
-       ry="16.549629"
-       rx="16.549629" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer8"
-     inkscape:label="Paths"
-     transform="translate(-45.036557,-223.97025)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
-       d="m 129.90666,421.22182 c 0.28408,-41.63565 6.04924,-51.04482 62.57078,-49.79655"
-       id="path14183"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17139)"
-       d="m 256.11158,373.35529 h 41.02328"
-       id="path17129"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317)"
-       d="m 371.78373,372.8916 44.46488,0.0163"
-       id="path17255"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17387)"
-       d="m 419.06658,528.76237 -50.24581,-0.24878"
-       id="path17257"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17463)"
-       d="m 490.27059,370.3091 57.98276,-21.21321"
-       id="path17259"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249926, 2.81249926;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17545)"
-       d="m 622.35363,346.82579 c 44.40461,8.44063 67.55627,55.56081 64.55738,80.83636"
-       id="path17261"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker21327)"
-       d="M 547.51417,503.96384 493.77405,520.9344"
-       id="path21091"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker21101)"
-       d="M 547.05338,556.32159 491.89905,536.5226"
-       id="path21093"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker24437)"
-       d="M 297.88404,527.21965 H 256.17532"
-       id="path23639"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33707)"
-       d="m 491.68481,384.48309 56.56854,11.31371"
-       id="path33699"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249927, 2.81249927;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker34331)"
-       d="m 623.4521,400.86666 c 47.82205,-28.14818 117.50231,-31.90109 150.99089,24.6368"
-       id="path34323"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249916, 2.81249916;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17545-6)"
-       d="m 686.34439,467.80844 c -8.68658,30.66345 -39.48232,39.82761 -63.92795,36.20296"
-       id="path17261-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker34331-1)"
-       d="m 774.29712,467.44848 c -9.56004,46.20044 -59.03927,93.41464 -150.51556,88.40841"
-       id="path34323-8"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Label-Host"
-     style="display:inline"
-     transform="translate(-45.036557,-223.97025)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="96.762512"
-       y="272.97668"
-       id="text13862"><tspan
-         sodipodi:role="line"
-         id="tspan13864"
-         x="96.762512"
-         y="272.97668"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">host1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="333.09454"
-       y="270.48886"
-       id="text13866"><tspan
-         sodipodi:role="line"
-         id="tspan13868"
-         x="333.09454"
-         y="270.48886"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">host2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="223.50238"
-       y="372.00732"
-       id="text13870"><tspan
-         sodipodi:role="line"
-         id="tspan13872"
-         x="223.50238"
-         y="372.00732"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"> NIC2</tspan><tspan
-         sodipodi:role="line"
-         x="223.50238"
-         y="393.88232"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
-         id="tspan112">(ens0)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="222.85818"
-       y="525.47791"
-       id="text13874"><tspan
-         sodipodi:role="line"
-         id="tspan13876"
-         x="222.85818"
-         y="525.47791"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"> NIC3</tspan><tspan
-         sodipodi:role="line"
-         x="222.85818"
-         y="547.35291"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
-         id="tspan114">(ens1)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="334.33984"
-       y="372.5249"
-       id="text13878"><tspan
-         sodipodi:role="line"
-         id="tspan13880"
-         x="334.33984"
-         y="372.5249"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"> NIC0</tspan><tspan
-         sodipodi:role="line"
-         x="334.33984"
-         y="394.3999"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
-         id="tspan106">(phy:0)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="333.24936"
-       y="524.89874"
-       id="text13882"><tspan
-         sodipodi:role="line"
-         id="tspan13884"
-         x="333.24936"
-         y="524.89874"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"> NIC1</tspan><tspan
-         sodipodi:role="line"
-         x="333.24936"
-         y="546.77374"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
-         id="tspan110">(phy:1)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="586.36591"
-       y="353.22079"
-       id="text14060-7-1-2"><tspan
-         sodipodi:role="line"
-         id="tspan4069"
-         x="586.36591"
-         y="353.22079"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">ring:0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="586.39557"
-       y="404.61786"
-       id="text14060"><tspan
-         sodipodi:role="line"
-         x="586.39557"
-         y="404.61786"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
-         id="tspan1037">ring:1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="584.92444"
-       y="508.80273"
-       id="text14060-7"><tspan
-         sodipodi:role="line"
-         id="tspan4005"
-         x="584.92444"
-         y="508.80273"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">ring:2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="583.87354"
-       y="562.25006"
-       id="text14060-7-1"><tspan
-         sodipodi:role="line"
-         id="tspan4025"
-         x="583.87354"
-         y="562.25006"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">ring:3</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-VM"
-     transform="translate(-45.036557,-223.97025)" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer7"
-     inkscape:label="Label-Processes"
-     transform="translate(-45.036557,-223.97025)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="455.65689"
-       y="382.68329"
-       id="text13998"><tspan
-         sodipodi:role="line"
-         id="tspan3937"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
-         x="455.65689"
-         y="382.68329">cls1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="454.84634"
-       y="531.37457"
-       id="text14002"><tspan
-         sodipodi:role="line"
-         id="tspan3931"
-         x="454.84634"
-         y="531.37457"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">mgr1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="685.17377"
-       y="452.17105"
-       id="text14014"><tspan
-         sodipodi:role="line"
-         id="tspan3933"
-         x="685.17377"
-         y="452.17105"
-         style="line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">fwd1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="127.05821"
-       y="451.05566"
-       id="text14034"><tspan
-         sodipodi:role="line"
-         x="127.05821"
-         y="451.05566"
-         id="tspan14038"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">ping</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="776.16803"
-       y="452.17105"
-       id="text14148"><tspan
-         sodipodi:role="line"
-         id="tspan3939"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
-         x="776.16803"
-         y="452.17105">fwd2</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/images/usecases/vf_cls_icmp_nwconf.svg b/docs/guides/images/usecases/vf_cls_icmp_nwconf.svg
new file mode 100644
index 0000000..fac33e0
--- /dev/null
+++ b/docs/guides/images/usecases/vf_cls_icmp_nwconf.svg
@@ -0,0 +1,752 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="229.5166mm"
+   height="116.08863mm"
+   viewBox="0 0 813.24765 411.33763"
+   id="svg9270"
+   version="1.1"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="simple_usecase_vf_nwconfig.svg"
+   inkscape:export-filename="/Users/ogawa/Pictures/usecase1_nwconfig.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs9272">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker39317"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path39319"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker38983"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path38985"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker34331"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path34333"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker33707"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path33709"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker24437"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path24439"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker21327"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path21329"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker21101"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path21103"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker17545"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path17547"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker17463"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17465"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker17387"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path17389"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker17317"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17319"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker17139"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17141"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path14207"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path14210"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path14192"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker17545-6"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17547-8"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker34331-1"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path34333-3" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.95"
+     inkscape:cx="508.02756"
+     inkscape:cy="192.96227"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer7"
+     showgrid="false"
+     inkscape:window-width="1280"
+     inkscape:window-height="962"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:snap-page="false"
+     fit-margin-bottom="5"
+     fit-margin-right="5"
+     fit-margin-top="5"
+     fit-margin-left="5"
+     inkscape:snap-text-baseline="true"
+     inkscape:snap-grids="false"
+     inkscape:snap-to-guides="false" />
+  <metadata
+     id="metadata9275">
+    <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="Background"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-45.036557,-532.23799)"
+     style="display:inline"
+     sodipodi:insensitive="true" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Host"
+     transform="translate(-45.036557,-223.97025)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13751"
+       width="540.69476"
+       height="373.85947"
+       x="299.40421"
+       y="242.15553" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13753"
+       width="191.17857"
+       height="374.90881"
+       x="63.22184"
+       y="242.21375" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13781"
+       width="59.092819"
+       height="79.092819"
+       x="194.45229"
+       y="336.42303" />
+    <path
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 194.98989,528.03453 v -39.53299 h 29.53299 29.53299 v 39.53299 39.53299 h -29.53299 -29.53299 z"
+       id="path13785"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13849"
+       width="71.017067"
+       height="79.045731"
+       x="300.09851"
+       y="334.80984" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13851"
+       width="69.061523"
+       height="79.085403"
+       x="299.91971"
+       y="489.08701" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13887"
+       cx="586.05249"
+       cy="348.07693"
+       rx="37.18409"
+       ry="20.624996" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13893"
+       cx="585.75403"
+       cy="399.82135"
+       rx="37.031242"
+       ry="19.561867" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13895"
+       cx="584.49115"
+       cy="503.65552"
+       rx="37.031246"
+       ry="19.514225" />
+    <ellipse
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path13897"
+       cx="584.95148"
+       cy="557.33405"
+       rx="37.031246"
+       ry="19.625351" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="VM"
+     transform="translate(-45.036557,-223.97025)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Processes"
+     transform="translate(-45.036557,-223.97025)">
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749976;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13924"
+       width="73.408455"
+       height="39.186874"
+       x="418.27637"
+       y="356.5462"
+       ry="19.593437"
+       rx="19.593437" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749976;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13977"
+       width="73.357582"
+       height="39.111198"
+       x="418.98126"
+       y="506.45963"
+       ry="18.15877"
+       rx="22.00881" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13981"
+       width="74.062492"
+       height="39.024136"
+       x="647.30579"
+       y="427.00555"
+       ry="16.364935"
+       rx="16.364935" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13983"
+       width="74.062485"
+       height="38.965855"
+       x="739.38965"
+       y="427.06384"
+       ry="18.091263"
+       rx="18.091263" />
+    <rect
+       style="opacity:1;fill:#afdde9;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect14176"
+       width="79.393723"
+       height="50.181725"
+       x="90.432533"
+       y="421.46158"
+       ry="16.549629"
+       rx="16.549629" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer8"
+     inkscape:label="Paths"
+     transform="translate(-45.036557,-223.97025)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="m 129.90666,421.22182 c 0.28408,-41.63565 6.04924,-51.04482 62.57078,-49.79655"
+       id="path14183"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17139)"
+       d="m 256.11158,373.35529 h 41.02328"
+       id="path17129"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317)"
+       d="m 371.78373,372.8916 44.46488,0.0163"
+       id="path17255"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17387)"
+       d="m 419.06658,528.76237 -50.24581,-0.24878"
+       id="path17257"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17463)"
+       d="m 490.27059,370.3091 57.98276,-21.21321"
+       id="path17259"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249926, 2.81249926;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17545)"
+       d="m 622.35363,346.82579 c 44.40461,8.44063 67.55627,55.56081 64.55738,80.83636"
+       id="path17261"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker21327)"
+       d="M 547.51417,503.96384 493.77405,520.9344"
+       id="path21091"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker21101)"
+       d="M 547.05338,556.32159 491.89905,536.5226"
+       id="path21093"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker24437)"
+       d="M 297.88404,527.21965 H 256.17532"
+       id="path23639"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33707)"
+       d="m 491.68481,384.48309 56.56854,11.31371"
+       id="path33699"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249927, 2.81249927;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker34331)"
+       d="m 623.4521,400.86666 c 47.82205,-28.14818 117.50231,-31.90109 150.99089,24.6368"
+       id="path34323"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249916, 2.81249916;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17545-6)"
+       d="m 686.34439,467.80844 c -8.68658,30.66345 -39.48232,39.82761 -63.92795,36.20296"
+       id="path17261-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.93749976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.81249922, 2.81249922;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker34331-1)"
+       d="m 774.29712,467.44848 c -9.56004,46.20044 -59.03927,93.41464 -150.51556,88.40841"
+       id="path34323-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Label-Host"
+     style="display:inline"
+     transform="translate(-45.036557,-223.97025)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="96.762512"
+       y="272.97668"
+       id="text13862"><tspan
+         sodipodi:role="line"
+         id="tspan13864"
+         x="96.762512"
+         y="272.97668"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">host1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="333.09454"
+       y="270.48886"
+       id="text13866"><tspan
+         sodipodi:role="line"
+         id="tspan13868"
+         x="333.09454"
+         y="270.48886"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">host2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="223.50238"
+       y="372.00732"
+       id="text13870"><tspan
+         sodipodi:role="line"
+         id="tspan13872"
+         x="223.50238"
+         y="372.00732"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"> NIC2</tspan><tspan
+         sodipodi:role="line"
+         x="223.50238"
+         y="393.88232"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan112">(ens0)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="222.85818"
+       y="525.47791"
+       id="text13874"><tspan
+         sodipodi:role="line"
+         id="tspan13876"
+         x="222.85818"
+         y="525.47791"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"> NIC3</tspan><tspan
+         sodipodi:role="line"
+         x="222.85818"
+         y="547.35291"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan114">(ens1)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="334.33984"
+       y="372.5249"
+       id="text13878"><tspan
+         sodipodi:role="line"
+         id="tspan13880"
+         x="334.33984"
+         y="372.5249"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"> NIC0</tspan><tspan
+         sodipodi:role="line"
+         x="334.33984"
+         y="394.3999"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan106">(phy:0)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="333.24936"
+       y="524.89874"
+       id="text13882"><tspan
+         sodipodi:role="line"
+         id="tspan13884"
+         x="333.24936"
+         y="524.89874"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"> NIC1</tspan><tspan
+         sodipodi:role="line"
+         x="333.24936"
+         y="546.77374"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan110">(phy:1)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="586.36591"
+       y="353.22079"
+       id="text14060-7-1-2"><tspan
+         sodipodi:role="line"
+         id="tspan4069"
+         x="586.36591"
+         y="353.22079"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">ring:0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="586.39557"
+       y="404.61786"
+       id="text14060"><tspan
+         sodipodi:role="line"
+         x="586.39557"
+         y="404.61786"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan1037">ring:1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="584.92444"
+       y="508.80273"
+       id="text14060-7"><tspan
+         sodipodi:role="line"
+         id="tspan4005"
+         x="584.92444"
+         y="508.80273"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">ring:2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="583.87354"
+       y="562.25006"
+       id="text14060-7-1"><tspan
+         sodipodi:role="line"
+         id="tspan4025"
+         x="583.87354"
+         y="562.25006"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">ring:3</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Label-VM"
+     transform="translate(-45.036557,-223.97025)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="Label-Processes"
+     transform="translate(-45.036557,-223.97025)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="455.65689"
+       y="382.68329"
+       id="text13998"><tspan
+         sodipodi:role="line"
+         id="tspan3937"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
+         x="455.65689"
+         y="382.68329">cls1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="454.84634"
+       y="531.37457"
+       id="text14002"><tspan
+         sodipodi:role="line"
+         id="tspan3931"
+         x="454.84634"
+         y="531.37457"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">mgr1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="685.17377"
+       y="452.17105"
+       id="text14014"><tspan
+         sodipodi:role="line"
+         id="tspan3933"
+         x="685.17377"
+         y="452.17105"
+         style="line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">fwd1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="127.05821"
+       y="451.05566"
+       id="text14034"><tspan
+         sodipodi:role="line"
+         x="127.05821"
+         y="451.05566"
+         id="tspan14038"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none">ping</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749982;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="776.16803"
+       y="452.17105"
+       id="text14148"><tspan
+         sodipodi:role="line"
+         id="tspan3939"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none"
+         x="776.16803"
+         y="452.17105">fwd2</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/use_cases/spp_vf.rst b/docs/guides/use_cases/spp_vf.rst
index ec07602..d2092e2 100644
--- a/docs/guides/use_cases/spp_vf.rst
+++ b/docs/guides/use_cases/spp_vf.rst
@@ -21,7 +21,7 @@ Incoming packets through ``NIC0`` are classified based on destination address.
 
 .. _figure_spp_vf_use_cases_nw_config:
 
-.. figure:: ../images/spp_vf/basic_usecase_vf_nwconfig.*
+.. figure:: ../images/usecases/vf_cls_icmp_nwconf.*
     :width: 80%
 
     Network Configuration
-- 
2.7.4

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

* [spp] [PATCH 15/20] docs: revise labels of image of spp_vf usecase
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (13 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 14/20] docs: move image of ICMP usecase of spp_vf ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 16/20] docs: fix image of spp_mirror monitoring usecase ogawa.yasufumi
                   ` (4 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

In image of spp_vf's ssh login usecase, some of names of entity are too
long or resource UIDs are not described appropriately. This update is to
revise labels in the image.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 .../spp_vf/basic_usecase_mirror_nwconfig.svg       |  514 --------
 docs/guides/images/usecases/mirror_dup_nwconf.svg  |  524 ++++++++
 docs/guides/images/usecases/vf_ssh_nwconfig.svg    | 1388 ++++++++++----------
 docs/guides/use_cases/spp_mirror.rst               |    2 +-
 4 files changed, 1250 insertions(+), 1178 deletions(-)
 delete mode 100644 docs/guides/images/spp_vf/basic_usecase_mirror_nwconfig.svg
 create mode 100644 docs/guides/images/usecases/mirror_dup_nwconf.svg

diff --git a/docs/guides/images/spp_vf/basic_usecase_mirror_nwconfig.svg b/docs/guides/images/spp_vf/basic_usecase_mirror_nwconfig.svg
deleted file mode 100644
index a6d3040..0000000
--- a/docs/guides/images/spp_vf/basic_usecase_mirror_nwconfig.svg
+++ /dev/null
@@ -1,514 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="210.57921mm"
-   height="122.05885mm"
-   viewBox="0 0 746.14665 432.49198"
-   id="svg9270"
-   version="1.1"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="simple_usecase_mirror_nwconfig.svg"
-   inkscape:export-filename="/Users/ogawa/Pictures/usecase1_nwconfig.png"
-   inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
-  <defs
-     id="defs9272">
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1305"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1303"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1215"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1213" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1205"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1203" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker39317"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path39319"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker38983"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path38985"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker17317"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path17319"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path14207"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path14192"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker17317-5"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path17319-1" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker17317-5-3"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path17319-1-5" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="140.04713"
-     inkscape:cy="201.90648"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer4"
-     showgrid="false"
-     inkscape:window-width="1280"
-     inkscape:window-height="962"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     fit-margin-top="3"
-     fit-margin-bottom="3"
-     fit-margin-right="3"
-     fit-margin-left="3"
-     showguides="false" />
-  <metadata
-     id="metadata9275">
-    <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="Background"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(5.6666944,-512.78653)"
-     style="display:inline"
-     sodipodi:insensitive="true" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Host"
-     transform="translate(5.6666944,-204.51879)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.93749994;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13751"
-       width="457.13391"
-       height="408.91714"
-       x="272.24741"
-       y="215.61746" />
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13753"
-       width="195.4061"
-       height="408.6947"
-       x="5.4319754"
-       y="217.21736" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13781"
-       width="64.717812"
-       height="79.092819"
-       x="136.23549"
-       y="295.58737" />
-    <path
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 135.48878,451.05311 v -39.53299 h 32.34549 32.34548 v 39.53299 39.53299 h -32.34548 -32.34549 z"
-       id="path13785"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13849"
-       width="70.978409"
-       height="79.04599"
-       x="272.41913"
-       y="296.18286" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13851"
-       width="71.005127"
-       height="79.072701"
-       x="273.51993"
-       y="408.05249" />
-    <path
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 134.67031,570.18654 v -39.53299 h 32.34549 32.34548 v 39.53299 39.53299 H 167.0158 134.67031 Z"
-       id="path13785-8"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13851-2"
-       width="69.687889"
-       height="79.081291"
-       x="272.69714"
-       y="530.93158" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317-5)"
-       d="M 648.15255,316.97257 C 592.31089,452.13733 471.98162,459.45066 345.4004,454.36904"
-       id="path17255-4"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317-5-3)"
-       d="M 662.94962,332.36241 C 668.07911,497.71296 558.28297,576.34599 345.34864,577.15578"
-       id="path17255-4-4"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="VM"
-     transform="translate(5.6666944,-204.51879)" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Processes"
-     transform="translate(5.6666944,-204.51879)">
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13924"
-       width="98.580269"
-       height="39.186874"
-       x="598.10144"
-       y="317.60025"
-       ry="19.593437"
-       rx="19.593437" />
-    <rect
-       style="opacity:1;fill:#aaeeff;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect14176"
-       width="79.402115"
-       height="48.795517"
-       x="25.629311"
-       y="386.78629"
-       ry="16.092466"
-       rx="16.092466" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer8"
-     inkscape:label="Paths"
-     transform="translate(5.6666944,-204.51879)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1205)"
-       d="m 201.27899,335.29036 h 68.45464"
-       id="path17129"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317)"
-       d="m 345.41477,337.08533 249.30459,0.46371"
-       id="path17255"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1215)"
-       d="M 271.52888,569.84469 H 202.23242"
-       id="path23639"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker39317)"
-       d="M 271.73403,449.70186 H 202.43758"
-       id="path23639-4"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1305)"
-       d="m 66.986277,387.25926 c -0.878316,-33.55107 14.003448,-56.84821 67.079553,-55.2951"
-       id="path17255-35"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Label-Host"
-     style="display:inline"
-     transform="translate(5.6666944,-204.51879)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="46.937237"
-       y="254.01593"
-       id="text13862"><tspan
-         sodipodi:role="line"
-         id="tspan13864"
-         x="46.937237"
-         y="254.01593"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">host1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="313.64438"
-       y="253.03381"
-       id="text13866"><tspan
-         sodipodi:role="line"
-         id="tspan13868"
-         x="313.64438"
-         y="253.03381"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">host2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="169.03558"
-       y="332.43378"
-       id="text13870"><tspan
-         sodipodi:role="line"
-         id="tspan13872"
-         x="169.03558"
-         y="332.43378"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"> NIC3</tspan><tspan
-         sodipodi:role="line"
-         x="169.03558"
-         y="354.30878"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         id="tspan79">(ens0)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="167.86406"
-       y="446.95963"
-       id="text13874"><tspan
-         sodipodi:role="line"
-         id="tspan13876"
-         x="167.86406"
-         y="446.95963"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"> NIC4</tspan><tspan
-         sodipodi:role="line"
-         x="167.86406"
-         y="468.83463"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         id="tspan81">(ens1)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="306.66058"
-       y="332.02304"
-       id="text13878"><tspan
-         sodipodi:role="line"
-         id="tspan948"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         x="306.66058"
-         y="332.02304"> NIC0</tspan><tspan
-         sodipodi:role="line"
-         id="tspan950"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         x="306.66058"
-         y="353.89804">(phy:0)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="307.20334"
-       y="443.29886"
-       id="text13882"><tspan
-         sodipodi:role="line"
-         id="tspan952"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         x="307.20334"
-         y="443.29886"> NIC1</tspan><tspan
-         sodipodi:role="line"
-         id="tspan954"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         x="307.20334"
-         y="465.17386">(phy:1)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="306.56158"
-       y="566.08923"
-       id="text13870-2"><tspan
-         sodipodi:role="line"
-         id="tspan956"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         x="306.56158"
-         y="566.08923"> NIC2</tspan><tspan
-         sodipodi:role="line"
-         id="tspan958"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         x="306.56158"
-         y="587.96423">(phy:2)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="168.76509"
-       y="565.57318"
-       id="text13874-7"><tspan
-         sodipodi:role="line"
-         id="tspan13876-8"
-         x="168.76509"
-         y="565.57318"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"> NIC5</tspan><tspan
-         sodipodi:role="line"
-         x="168.76509"
-         y="587.44818"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
-         id="tspan83">(ens2)</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-VM"
-     transform="translate(5.6666944,-204.51879)" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer7"
-     inkscape:label="Label-Processes"
-     transform="translate(5.6666944,-204.51879)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="646.73199"
-       y="343.73734"
-       id="text13998"><tspan
-         sodipodi:role="line"
-         id="tspan944"
-         x="646.73199"
-         y="343.73734"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">mir1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       x="63.521843"
-       y="414.73956"
-       id="text14034"><tspan
-         sodipodi:role="line"
-         x="63.521843"
-         y="414.73956"
-         id="tspan14038"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">ping</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/images/usecases/mirror_dup_nwconf.svg b/docs/guides/images/usecases/mirror_dup_nwconf.svg
new file mode 100644
index 0000000..424983e
--- /dev/null
+++ b/docs/guides/images/usecases/mirror_dup_nwconf.svg
@@ -0,0 +1,524 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="172.57921mm"
+   height="100.05885mm"
+   viewBox="0 0 611.50087 354.53916"
+   id="svg9270"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="mirror_dup_nwconf.svg"
+   inkscape:export-filename="/Users/ogawa/Pictures/usecase1_nwconfig.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs9272">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker1305"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path1303"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1215"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1213" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1205"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1203" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker39317"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path39319"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker38983"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path38985"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker17317"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17319"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path14207"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path14192"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker17317-5"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17319-1" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker17317-5-3"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17319-1-5" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="458.31394"
+     inkscape:cy="201.90648"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:window-width="1539"
+     inkscape:window-height="960"
+     inkscape:window-x="179"
+     inkscape:window-y="59"
+     inkscape:window-maximized="0"
+     fit-margin-top="3"
+     fit-margin-bottom="3"
+     fit-margin-right="3"
+     fit-margin-left="3"
+     showguides="false" />
+  <metadata
+     id="metadata9275">
+    <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></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Background"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(5.6666944,-590.73958)"
+     style="display:inline"
+     sodipodi:insensitive="true" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Host"
+     transform="translate(5.6666944,-282.47184)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9375;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13751"
+       width="324.13391"
+       height="327.19244"
+       x="272.24741"
+       y="297.61746" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13753"
+       width="195.4061"
+       height="327.01447"
+       x="5.4319754"
+       y="298.89758" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13781"
+       width="64.717812"
+       height="61.216827"
+       x="136.23549"
+       y="349.58737" />
+    <path
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 135.48878,480.19598 0,-31.39011 32.34549,0 32.34548,0 0,31.39011 0,31.39012 -32.34548,0 -32.34549,0 z"
+       id="path13785"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13849"
+       width="70.978409"
+       height="61.18058"
+       x="272.41913"
+       y="350.04828" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13851"
+       width="71.005127"
+       height="62.785568"
+       x="273.51993"
+       y="446.05249" />
+    <path
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 134.67031,577.21981 0,-30.56626 32.34549,0 32.34548,0 0,30.56626 0,30.56626 -32.34548,0 -32.34549,0 z"
+       id="path13785-8"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93749982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13851-2"
+       width="69.687889"
+       height="61.144356"
+       x="272.69714"
+       y="546.86853" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317-5)"
+       d="m 476.46009,397.58307 c -24.18922,79.15053 -76.31287,83.4331 -131.14472,80.45738"
+       id="path17255-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317-5-3)"
+       d="M 478.31863,398.86691 C 480.4669,513.88523 434.48361,568.58259 345.30545,569.14588"
+       id="path17255-4-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="VM"
+     transform="translate(5.6666944,-282.47184)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Processes"
+     transform="translate(5.6666944,-282.47184)">
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13924"
+       width="98.580269"
+       height="39.186874"
+       x="428.10144"
+       y="359.60025"
+       ry="19.593437"
+       rx="19.593437" />
+    <rect
+       style="opacity:1;fill:#aaeeff;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect14176"
+       width="79.402115"
+       height="48.795517"
+       x="25.629311"
+       y="434.78629"
+       ry="16.092466"
+       rx="16.092466" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer8"
+     inkscape:label="Paths"
+     transform="translate(5.6666944,-282.47184)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1205)"
+       d="m 201.27899,377.29036 68.45464,0"
+       id="path17129"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317)"
+       d="m 344.98321,379.08533 80.51666,0.46371"
+       id="path17255"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1215)"
+       d="m 271.52888,579.84469 -69.29646,0"
+       id="path23639"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker39317)"
+       d="m 271.73403,479.70186 -69.29645,0"
+       id="path23639-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1305)"
+       d="m 66.986277,435.25926 c -0.878316,-33.55107 14.003448,-56.84821 67.079553,-55.2951"
+       id="path17255-35"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Label-Host"
+     style="display:inline"
+     transform="translate(5.6666944,-282.47184)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="44.937237"
+       y="324.01593"
+       id="text13862"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan13864"
+         x="44.937237"
+         y="324.01593"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">host1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="311.64438"
+       y="323.03381"
+       id="text13866"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan13868"
+         x="311.64438"
+         y="323.03381"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">host2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="169.03558"
+       y="374.43378"
+       id="text13870"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan13872"
+         x="169.03558"
+         y="374.43378"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"> NIC3</tspan><tspan
+         sodipodi:role="line"
+         x="169.03558"
+         y="396.30878"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan79">(ens0)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="167.86406"
+       y="476.95963"
+       id="text13874"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan13876"
+         x="167.86406"
+         y="476.95963"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"> NIC4</tspan><tspan
+         sodipodi:role="line"
+         x="167.86406"
+         y="498.83463"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan81">(ens1)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="306.66058"
+       y="374.02304"
+       id="text13878"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan948"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         x="306.66058"
+         y="374.02304"> NIC0</tspan><tspan
+         sodipodi:role="line"
+         id="tspan950"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         x="306.66058"
+         y="395.89804">(phy:0)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="307.20334"
+       y="473.29886"
+       id="text13882"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan952"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         x="307.20334"
+         y="473.29886"> NIC1</tspan><tspan
+         sodipodi:role="line"
+         id="tspan954"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         x="307.20334"
+         y="495.17386">(phy:1)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="306.56158"
+       y="576.08923"
+       id="text13870-2"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan956"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         x="306.56158"
+         y="576.08923"> NIC2</tspan><tspan
+         sodipodi:role="line"
+         id="tspan958"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         x="306.56158"
+         y="597.96423">(phy:2)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="168.76509"
+       y="575.57318"
+       id="text13874-7"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan13876-8"
+         x="168.76509"
+         y="575.57318"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"> NIC5</tspan><tspan
+         sodipodi:role="line"
+         x="168.76509"
+         y="597.44818"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan83">(ens2)</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Label-VM"
+     transform="translate(5.6666944,-282.47184)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="Label-Processes"
+     transform="translate(5.6666944,-282.47184)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="476.73199"
+       y="385.73734"
+       id="text13998"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan944"
+         x="476.73199"
+         y="385.73734"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">mir1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="63.521843"
+       y="462.73956"
+       id="text14034"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         x="63.521843"
+         y="462.73956"
+         id="tspan14038"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">ping</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/images/usecases/vf_ssh_nwconfig.svg b/docs/guides/images/usecases/vf_ssh_nwconfig.svg
index 65ac3b8..6824c79 100644
--- a/docs/guides/images/usecases/vf_ssh_nwconfig.svg
+++ b/docs/guides/images/usecases/vf_ssh_nwconfig.svg
@@ -9,13 +9,13 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="330mm"
+   width="325mm"
    height="160mm"
-   viewBox="0 0 1169.2911 566.92911"
+   viewBox="0 0 1151.5746 566.92911"
    id="svg9270"
    version="1.1"
    inkscape:version="0.91 r13725"
-   sodipodi:docname="usecase1_nwconfig.svg"
+   sodipodi:docname="vf_ssh_nwconfig.svg"
    inkscape:export-filename="/Users/ogawa/Pictures/usecase1_nwconfig.png"
    inkscape:export-xdpi="90"
    inkscape:export-ydpi="90">
@@ -24,793 +24,846 @@
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker39317"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true">
       <path
          id="path39319"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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)" />
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker38983"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true">
       <path
          id="path38985"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker36783"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path36785" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path36785"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker36461"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path36463"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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)" />
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker36145"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
-         id="path36147" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path36147"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker35835"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path35837"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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)" />
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker35523"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path35525" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path35525"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker35225"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path35227"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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)" />
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker34933"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
-         id="path34935" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path34935"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker34647"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path34649"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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)" />
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker34331"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path34333" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path34333"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker33707"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path33709"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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)" />
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker33083"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path33085" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path33085"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker30453"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path30455"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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)" />
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker24437"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path24439" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path24439"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker24169"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path24171"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker23907"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path23909" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path23909"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker23651"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path23653"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker22041"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path22043" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path22043"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker21327"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path21329"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker21101"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path21103" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path21103"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker20877"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path20879"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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)" />
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker20663"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
-         id="path20665" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path20665"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker20449"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path20451"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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)" />
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker20247"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path20249" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path20249"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker20051"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path20053"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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)" />
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker19861"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#e26f00;stroke-opacity:1;fill:#e26f00;fill-opacity:1"
-         id="path19863" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path19863"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker19677"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path19679"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#e26f00;stroke-opacity:1;fill:#e26f00;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)" />
+         style="fill:#e26f00;fill-opacity:1;fill-rule:evenodd;stroke:#e26f00;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker19499"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path19501" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path19501"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker19327"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path19329"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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)" />
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker19161"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path19163" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path19163"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker19001"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path19003"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000c8;stroke-opacity:1;fill:#0000c8;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)" />
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker18699"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path18701"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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)" />
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker18557"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#007800;stroke-opacity:1;fill:#007800;fill-opacity:1"
-         id="path18559" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path18559"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker18421"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path18423"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#007800;stroke-opacity:1;fill:#007800;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)" />
+         style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:#007800;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker18289"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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:#0000c8;stroke-opacity:1;fill:#0000c8;fill-opacity:1"
-         id="path18291" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path18291"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker18163"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path18165"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker18045"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path18047" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path18047"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker17933"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path17935"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker17827"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path17829" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17829"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker17727"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path17729"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker17633"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path17635" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17635"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker17545"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path17547"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker17463"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path17465" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17465"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker17387"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path17389"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker17317"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path17319" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17319"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker17197"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path17199"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker17139"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path17141" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path17141"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="marker15631"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path15633"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lstart"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="Arrow2Lstart"
        style="overflow:visible"
        inkscape:isstock="true">
       <path
          id="path14207"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:isstock="true"
-       style="overflow:visible;"
+       style="overflow:visible"
        id="marker14505"
-       refX="0.0"
-       refY="0.0"
+       refX="0"
+       refY="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="path14507" />
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path14507"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow2Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="Arrow2Lend"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true"
        inkscape:collect="always">
       <path
          id="path14210"
-         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)" />
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
     </marker>
     <marker
        inkscape:stockid="Arrow1Lend"
        orient="auto"
-       refY="0.0"
-       refX="0.0"
+       refY="0"
+       refX="0"
        id="Arrow1Lend"
-       style="overflow:visible;"
+       style="overflow:visible"
        inkscape:isstock="true">
       <path
          id="path14192"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
-         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
     </marker>
   </defs>
   <sodipodi:namedview
@@ -820,16 +873,16 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="0.70710678"
-     inkscape:cx="666.19832"
-     inkscape:cy="405.71429"
+     inkscape:zoom="1.4142136"
+     inkscape:cx="870.33227"
+     inkscape:cy="216.09899"
      inkscape:document-units="px"
-     inkscape:current-layer="layer8"
+     inkscape:current-layer="layer5"
      showgrid="false"
-     inkscape:window-width="1440"
-     inkscape:window-height="851"
-     inkscape:window-x="30"
-     inkscape:window-y="0"
+     inkscape:window-width="1683"
+     inkscape:window-height="1063"
+     inkscape:window-x="259"
+     inkscape:window-y="726"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata9275">
@@ -839,7 +892,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -848,8 +901,7 @@
      inkscape:groupmode="layer"
      id="layer1"
      transform="translate(0,-485.43308)"
-     style="display:inline"
-     sodipodi:insensitive="true" />
+     style="display:inline" />
   <g
      inkscape:groupmode="layer"
      id="layer2"
@@ -858,130 +910,130 @@
     <rect
        style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.6133436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13751"
-       width="890.95874"
+       width="874.95874"
        height="552.8847"
-       x="272.94727"
+       x="266.94727"
        y="185.40306" />
     <rect
        style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.00359738;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13753"
-       width="195.26669"
+       width="204.33778"
        height="551.57568"
-       x="5.5016766"
+       x="9.5016766"
        y="187.01703" />
     <rect
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.90717888;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.90717882;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13781"
-       width="59.092819"
+       width="69.092819"
        height="79.092819"
-       x="139.98549"
+       x="144.06894"
        y="295.58737" />
     <path
-       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93401569;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 139.55317,581.42013 0,-39.53299 29.53299,0 29.53299,0 0,39.53299 0,39.53299 -29.53299,0 -29.53299,0 0,-39.53299 z"
+       style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.93401575;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 143.55445,581.42013 0,-39.53299 34.53299,0 34.533,0 0,39.53299 0,39.53299 -34.533,0 -34.53299,0 0,-39.53299 z"
        id="path13785"
        inkscape:connector-curvature="0" />
     <rect
        style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.87119967;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13849"
-       width="59.128799"
+       width="70.128799"
        height="79.128799"
-       x="274.25272"
+       x="268.25272"
        y="296.14145" />
     <rect
        style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.84680814;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13851"
-       width="59.153191"
+       width="70.153191"
        height="79.153191"
-       x="275.66907"
+       x="269.66907"
        y="542.12927" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.59599024;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13887"
-       cx="586.10284"
+       cx="565.1358"
        cy="248.56296"
-       rx="29.702003"
+       rx="36.562859"
        ry="19.702005" />
     <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.87626642;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.87626636;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13893"
-       cx="585.81708"
+       cx="564.78406"
        cy="303.1344"
-       rx="29.561867"
+       rx="36.39035"
        ry="19.561867" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.97154814;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13895"
-       cx="585.24567"
+       cx="564.08063"
        cy="357.70587"
-       rx="29.514225"
+       rx="36.331703"
        ry="19.514225" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.74929738;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13897"
-       cx="585.81714"
+       cx="564.78412"
        cy="415.1344"
-       rx="29.625351"
+       rx="36.468498"
        ry="19.625351" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.76775968;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13899"
-       cx="586.67426"
+       cx="565.83923"
        cy="503.1344"
-       rx="29.616119"
+       rx="36.457134"
        ry="19.616119" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.87893379;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13901"
-       cx="586.38849"
+       cx="565.48743"
        cy="562.56299"
-       rx="29.560534"
+       rx="36.38871"
        ry="19.560534" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.78242588;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13903"
-       cx="586.38849"
+       cx="565.48743"
        cy="628.27722"
-       rx="29.608788"
+       rx="36.448109"
        ry="19.608788" />
     <ellipse
-       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.94965303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.94965297;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13905"
-       cx="586.38849"
+       cx="565.48743"
        cy="681.13446"
-       rx="29.525173"
+       rx="36.345181"
        ry="19.525173" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.61938131;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13907"
-       cx="856.99988"
+       cx="822.49988"
        cy="281.42014"
-       rx="34.690308"
+       rx="40.19379"
        ry="29.69031" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.62367457;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13909"
-       cx="856.99988"
+       cx="822.49988"
        cy="538.84869"
-       rx="34.688164"
+       rx="40.191307"
        ry="29.688162" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.77769536;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13911"
-       cx="856.99988"
+       cx="822.49988"
        cy="385.70581"
-       rx="34.611153"
+       rx="40.102077"
        ry="29.611153" />
     <ellipse
        style="opacity:1;fill:#d9ffc4;fill-opacity:1;stroke:#000000;stroke-width:0.8012569;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="path13913"
-       cx="856.99988"
+       cx="822.49988"
        cy="652.84869"
-       rx="34.599373"
+       rx="40.088428"
        ry="29.599371" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker33083);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 767.91785,575.80307 59.39696,60.81118"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33083)"
+       d="m 727.91785,575.80307 59.39696,60.81118"
        id="path33075"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
@@ -996,42 +1048,42 @@
        id="rect13777"
        width="217.55193"
        height="218.96613"
-       x="940.46655"
+       x="912.46655"
        y="206.22203" />
     <rect
        style="opacity:1;fill:#ebffff;fill-opacity:1;stroke:#000000;stroke-width:1.06073654;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13779"
        width="216.01033"
        height="227.32404"
-       x="940.53027"
+       x="912.53027"
        y="471.90094" />
     <rect
        style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.85308915;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13853"
        width="59.146908"
        height="59.146912"
-       x="940.42645"
+       x="912.42645"
        y="254.98952" />
     <rect
        style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.83044261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13855"
        width="59.169556"
        height="59.169556"
-       x="940.4151"
+       x="912.4151"
        y="354.12106" />
     <rect
        style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.8089959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13857"
        width="59.191002"
        height="59.191006"
-       x="940.40436"
+       x="912.40436"
        y="512.68176" />
     <rect
        style="opacity:1;fill:#ffff90;fill-opacity:1;stroke:#000000;stroke-width:0.76903498;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13859"
        width="59.230965"
        height="59.230965"
-       x="940.3844"
+       x="912.3844"
        y="625.51892" />
   </g>
   <g
@@ -1042,7 +1094,7 @@
     <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.81312722;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13924"
-       width="109.18687"
+       width="79.186874"
        height="39.186874"
        x="393.72644"
        y="265.10025"
@@ -1050,7 +1102,7 @@
     <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.71274847;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13975"
-       width="109.28725"
+       width="79.287254"
        height="39.287251"
        x="393.88773"
        y="621.49078"
@@ -1058,94 +1110,58 @@
     <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.88880163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13977"
-       width="109.1112"
+       width="79.111198"
        height="39.111198"
        x="395.51413"
        y="365.75101"
        ry="18.15877"
-       rx="22.00881" />
+       rx="15.957513" />
     <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.89412194;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13979"
-       width="109.10588"
+       width="79.105881"
        height="39.105877"
        x="395.72339"
        y="507.80826"
        ry="18.156273" />
     <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.97586316;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.9758631;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13981"
-       width="109.02414"
+       width="79.024139"
        height="39.024136"
-       x="664.30499"
+       x="650.30499"
        y="227.05092"
        ry="16.364935" />
     <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.03414404;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13983"
-       width="108.96586"
+       width="78.965858"
        height="38.965855"
-       x="664.33417"
+       x="650.33417"
        y="283.65152"
        ry="18.091263" />
     <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.83751601;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13985"
-       width="109.16249"
+       width="79.162483"
        height="39.162483"
-       x="662.80725"
+       x="648.80725"
        y="340.41031"
        ry="19.581242" />
     <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.00372946;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13987"
-       width="108.99627"
+       width="78.996269"
        height="38.996269"
-       x="662.89044"
+       x="648.89044"
        y="397.92197"
        ry="19.498135" />
     <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.97586316;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13989"
-       width="109.02413"
-       height="39.024136"
-       x="664.30499"
-       y="484.7652"
-       ry="19.512068"
-       rx="0" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.89144975;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13991"
-       width="109.10855"
-       height="39.108551"
-       x="662.83423"
-       y="544.72296"
-       ry="19.554276"
-       rx="0" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.14577103;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13993"
-       width="108.85423"
-       height="38.854229"
-       x="661.24713"
-       y="663.70734"
-       ry="19.427114"
-       rx="0" />
-    <rect
-       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93164957;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect13995"
-       width="109.06834"
-       height="39.068352"
-       x="661.42572"
-       y="609.02881"
-       ry="19.534176"
-       rx="0" />
-    <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.65907991;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect14176"
        width="79.340927"
        height="59.340919"
-       x="25.659908"
+       x="29.659908"
        y="426.19189"
        ry="19.570276" />
     <rect
@@ -1153,7 +1169,7 @@
        id="rect14178"
        width="79.354866"
        height="59.354866"
-       x="1048.8572"
+       x="1020.8572"
        y="302.94739"
        ry="13.320185" />
     <rect
@@ -1161,9 +1177,41 @@
        id="rect14180"
        width="79.321571"
        height="59.321579"
-       x="1048.5306"
+       x="1020.5306"
        y="565.90723"
        ry="14.095816" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.9758631;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13981-3"
+       width="79.024139"
+       height="39.024136"
+       x="649.20209"
+       y="483.15384"
+       ry="19.512068" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.03414404;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13983-8"
+       width="78.965858"
+       height="38.965855"
+       x="649.23126"
+       y="543.75446"
+       ry="18.091263" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.83751601;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13985-0"
+       width="79.162483"
+       height="39.162483"
+       x="647.70435"
+       y="608.51324"
+       ry="19.581242" />
+    <rect
+       style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:1.00372946;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13987-5"
+       width="78.996269"
+       height="38.996269"
+       x="647.78754"
+       y="664.0249"
+       ry="19.498135" />
   </g>
   <g
      inkscape:groupmode="layer"
@@ -1172,284 +1220,284 @@
      transform="translate(0,-177.16534)">
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
-       d="M 48.083139,427.31064 C 48.49406,336.26236 56.83346,315.68649 138.59281,318.4162"
+       d="M 52.083139,427.31064 C 52.49406,336.26236 60.83346,315.68649 142.59281,318.4162"
        id="path14183"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart)"
-       d="m 80.610051,424.48222 c -0.488362,-55.71646 4.616042,-76.55129 57.982759,-76.36754"
+       d="m 84.610051,424.48222 c -0.488362,-55.71646 4.616042,-76.55129 57.982759,-76.36754"
        id="path14497"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker15631)"
-       d="M 138.59282,598.43048 C 60.667106,598.15102 51.055777,583.15326 49.497352,486.70761"
+       d="M 142.59282,598.43048 C 64.667106,598.15102 55.055777,583.15326 53.497352,486.70761"
        id="path15609"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker14505)"
-       d="m 80.610051,486.70761 c 3.121247,70.22472 26.782499,78.77937 56.568549,79.19596"
+       d="m 84.610051,486.70761 c 3.121247,70.22472 26.782499,78.77937 56.568549,79.19596"
        id="path15611"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17139)"
-       d="m 199.40399,318.4162 72.12489,0"
+       d="m 213.28911,318.4162 52.46081,0"
        id="path17129"
        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(#marker17197)"
-       d="m 272.94309,350.94311 -72.12488,0"
+       d="m 266.77856,350.94311 -52.4608,0"
        id="path17131"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17317)"
-       d="m 332.34007,318.4162 60.81118,-31.1127"
+       d="m 338.35381,318.4162 56.00802,-31.1127"
        id="path17255"
        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(#marker17387)"
-       d="m 395.97968,386.29845 -62.2254,-33.94113"
+       d="M 396.96686,386.29845 339.65632,352.35732"
        id="path17257"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17463);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 497.80305,271.74715 57.98276,-21.21321"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17463)"
+       d="m 469.80305,271.74715 57.98276,-21.21321"
        id="path17259"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17545);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 615.18278,246.2913 46.66905,0"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17545)"
+       d="m 601.18278,246.2913 46.66905,0"
        id="path17261"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17633);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 773.5747,247.70552 50.91169,24.04162"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17633)"
+       d="m 729.5747,247.70552 50.91169,24.04162"
        id="path17267"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18163);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 825.07217,294.37457 -52.3259,63.63961"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.99999984, 3.99999991;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker18163)"
+       d="M 785.10489,294.3512 728.7738,360.98747"
        id="path17269"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17727)"
-       d="m 889.54021,268.91872 49.49748,0"
+       d="m 861.54021,268.91872 49.49748,0"
        id="path17271"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18045);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 940.4519,297.20299 -55.15433,0"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker18045)"
+       d="m 912.4519,297.20299 -55.15433,0"
        id="path17273"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17827);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 998.43465,266.09029 c 94.63305,0.45774 104.16945,5.24597 107.48025,35.35534"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17827)"
+       d="m 970.4347,266.09029 c 94.633,0.45774 104.1694,5.24597 107.4802,35.35534"
        id="path17275"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker17933);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 1071.1453,303.44563 c 6.6858,-10.51028 -33.019,-11.89778 -70.7107,-11.31371"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker17933)"
+       d="m 1043.1453,303.44563 c 6.6858,-10.51028 -33.019,-11.89778 -70.7107,-11.31371"
        id="path17277"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18421);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="m 998.43465,376.98474 c 40.24095,0.5143 56.08195,3.05682 76.36755,-11.31371"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker18421)"
+       d="m 970.4347,376.98474 c 40.2409,0.5143 56.0819,3.05682 76.3675,-11.31371"
        id="path17279"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18557);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 1108.7433,363.08524 c 0.564,40.58047 -33.6193,36.97478 -107.4802,38.18376"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker18557)"
+       d="m 1080.7433,363.08524 c 0.564,40.58047 -33.6193,36.97478 -107.4802,38.18376"
        id="path17281"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18699);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="m 888.126,375.32788 50.91169,-1.41421"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker18699)"
+       d="m 860.126,375.32788 50.91169,-1.41421"
        id="path17283"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20663);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="M 772.16048,502.26396 824.48639,401.8548"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4.00000001;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker20663)"
+       d="M 728.1346,497.26506 784.47404,396.8558"
        id="path17287"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20877);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="M 837.2143,411.75429 767.91784,618.22947"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker20877)"
+       d="M 797.2143,411.75429 727.91784,618.22947"
        id="path17289"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20449);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 829.31481,671.96959 -59.39697,12.72792"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker20449)"
+       d="m 789.31481,671.96959 -59.39697,12.72792"
        id="path17291"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19861);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 1111.5718,625.30054 c -3.2308,26.90074 -39.1957,44.28131 -110.3087,41.01219"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19861)"
+       d="m 1083.5718,625.30054 c -3.2308,26.90074 -39.1957,44.28131 -110.3087,41.01219"
        id="path17293"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20247);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 938.20926,669.14116 -50.91169,-1.41421"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker20247)"
+       d="m 910.20926,669.14116 -50.91169,-1.41421"
        id="path17295"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker20051);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 886.71178,636.61425 50.91169,0"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker20051)"
+       d="m 858.71178,636.61425 50.91169,0"
        id="path17297"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19677);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 1001.2631,642.2711 c 33.0296,0.8126 63.8757,1.51529 73.5391,-14.14213"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19677)"
+       d="m 973.2631,642.2711 c 33.0296,0.8126 63.8757,1.51529 73.5391,-14.14213"
        id="path17299"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19001);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
-       d="m 886.71178,526.30559 52.32591,0"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19001)"
+       d="m 858.71178,526.30559 52.32591,0"
        id="path17303"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19161);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
-       d="m 998.43465,527.7198 c 85.27465,-1.40183 113.99635,2.84932 113.13705,39.59799"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19161)"
+       d="m 970.4347,527.7198 c 85.2746,-1.40183 113.9963,2.84932 113.137,39.59799"
        id="path17305"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19499);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
-       d="m 1067.7312,564.48935 c 0.2203,-10.60148 -37.0372,-9.65317 -66.4681,-11.3137"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19499)"
+       d="m 1039.7312,564.48935 c 0.2203,-10.60148 -37.0372,-9.65317 -66.4681,-11.3137"
        id="path17307"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker19327);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
-       d="m 938.20926,557.41829 -50.91169,-1.41422"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19327)"
+       d="m 910.20926,557.41829 -50.91169,-1.41422"
        id="path17309"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker18289);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 769.91784,313.34513 70.71068,197.9899"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker18289)"
+       d="m 729.91784,313.34513 70.71068,197.9899"
        id="path18281"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker22041);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="M 826.48639,526.30558 767.08942,430.13907"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker22041)"
+       d="M 786.48639,526.30558 727.08942,430.13907"
        id="path18413"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker21327);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 555.78581,358.01418 -53.74012,16.97056"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker21327)"
+       d="m 527.78581,358.01418 -53.74012,16.97056"
        id="path21091"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker21101);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="M 557.20002,415.99693 502.04569,396.19794"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker21101)"
+       d="M 529.20002,415.99693 474.04569,396.19794"
        id="path21093"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker24169)"
-       d="m 197.98978,565.90357 73.5391,0"
+       d="m 212.26047,565.90357 53.48945,0"
        id="path23635"
        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(#marker24437)"
-       d="m 271.52888,599.84469 -69.29646,0"
+       d="m 265.74992,599.84469 -50.40352,0"
        id="path23639"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker23907)"
-       d="m 333.75428,565.90357 59.39697,-33.94113"
+       d="m 339.65632,565.90357 54.70551,-33.94113"
        id="path23641"
        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(#marker23651)"
-       d="M 393.15125,640.85689 335.1685,602.67312"
+       d="M 394.36183,640.85689 340.95884,602.67312"
        id="path23643"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker30453);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 939.62347,397.61216 -50.91169,0"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker30453)"
+       d="m 911.62347,397.61216 -50.91169,0"
        id="path30445"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker33707);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 499.21727,291.54614 56.56854,11.31371"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33707)"
+       d="m 471.21727,291.54614 56.56854,11.31371"
        id="path33699"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34331);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 615.76857,302.85985 46.66904,0"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker34331)"
+       d="m 601.76857,302.85985 46.66904,0"
        id="path34323"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;marker-end:url(#marker38983)"
-       d="m 661.85183,358.01418 -49.49748,0"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker38983)"
+       d="m 647.85183,358.01418 -49.49748,0"
        id="path34629"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;marker-end:url(#marker39317)"
-       d="m 663.26604,417.41115 -48.08326,0"
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker39317)"
+       d="m 649.26604,417.41115 -48.08326,0"
        id="path34631"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34647);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="m 502.04569,517.82031 53.74012,-15.55635"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker34647)"
+       d="m 474.04569,517.82031 53.74012,-15.55635"
        id="path34633"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35225);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 502.04569,534.79087 53.74012,24.04163"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker35225)"
+       d="m 474.04569,534.79087 53.74012,24.04163"
        id="path34635"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker34933);stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0"
-       d="m 615.18278,502.26396 45.25483,0"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker34933)"
+       d="m 601.18278,502.26396 45.25483,0"
        id="path34637"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35523);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 615.18278,563.07514 45.25483,0"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker35523)"
+       d="m 601.18278,563.07514 45.25483,0"
        id="path34639"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36145);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 660.43761,629.54318 -45.25483,0"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker36145)"
+       d="m 646.43761,629.54318 -45.25483,0"
        id="path35821"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36461);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="m 661.0234,683.2833 -42.42641,1.41421"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker36461)"
+       d="m 647.0234,683.2833 -42.42641,1.41421"
        id="path35823"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker36783);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
-       d="M 555.78581,681.86908 499.21727,653.58481"
+       style="fill:none;fill-rule:evenodd;stroke:#e26f00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker36783)"
+       d="M 527.78581,681.86908 471.21727,653.58481"
        id="path35825"
        inkscape:connector-curvature="0" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker35835);stroke-miterlimit:4;stroke-dasharray:8,4;stroke-dashoffset:0"
-       d="m 555.78581,630.95739 -53.74012,4.24264"
+       style="fill:none;fill-rule:evenodd;stroke:#007800;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:8, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker35835)"
+       d="m 527.78581,630.95739 -53.74012,4.24264"
        id="path35827"
        inkscape:connector-curvature="0" />
   </g>
@@ -1462,455 +1510,469 @@
     <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="14.285588"
+       x="18.285587"
        y="209.80876"
        id="text13862"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13864"
-         x="14.285588"
+         x="18.285587"
          y="209.80876">host1</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="281.71417"
+       x="275.71417"
        y="206.95163"
        id="text13866"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13868"
-         x="281.71417"
+         x="275.71417"
          y="206.95163">host2</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="150.28558"
+       x="156.28558"
        y="341.80878"
        id="text13870"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13872"
-         x="150.28558"
+         x="156.28558"
          y="341.80878">NIC2</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="149.42845"
-       y="582.95166"
+       x="155.42845"
+       y="586.95166"
        id="text13874"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13876"
-         x="149.42845"
-         y="582.95166">NIC3</tspan></text>
+         x="155.42845"
+         y="586.95166">NIC3</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="282.28558"
-       y="339.52304"
+       x="302.28558"
+       y="335.52304"
        id="text13878"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13880"
-         x="282.28558"
-         y="339.52304">NIC0</tspan></text>
+         x="302.28558"
+         y="335.52304"
+         style="line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle">NIC0</tspan><tspan
+         sodipodi:role="line"
+         x="302.28558"
+         y="357.39804"
+         id="tspan4736"
+         style="line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle">(phy: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="283.14273"
-       y="588.66589"
+       x="305.14273"
+       y="578.66589"
        id="text13882"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13884"
-         x="283.14273"
-         y="588.66589">NIC1</tspan></text>
+         x="305.14273"
+         y="578.66589"
+         style="line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle">NIC1</tspan><tspan
+         sodipodi:role="line"
+         x="305.14273"
+         y="600.54089"
+         id="tspan4738"
+         style="line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle">(phy:1)</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="564.28558"
+       x="539.09949"
        y="254.38019"
        id="text13889"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13891"
-         x="564.28558"
-         y="254.38019">ring0</tspan></text>
+         x="539.09949"
+         y="254.38019">ring: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="563.92798"
+       x="539.09949"
        y="307.93091"
        id="text14060"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14062"
-         x="563.92798"
-         y="307.93091">ring1</tspan></text>
+         x="539.09949"
+         y="307.93091">ring:1</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="563.09955"
+       x="539.09949"
        y="362.6416"
        id="text14064"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14066"
-         x="563.09955"
-         y="362.6416">ring2</tspan></text>
+         x="539.09949"
+         y="362.6416">ring:2</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="563.34216"
+       x="539.09949"
        y="419.89642"
        id="text14068"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14070"
-         x="563.34216"
-         y="419.89642">ring3</tspan></text>
+         x="539.09949"
+         y="419.89642">ring: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="563.09949"
+       x="539.09949"
        y="509.92081"
        id="text14072"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14074"
-         x="563.09949"
-         y="509.92081">ring4</tspan></text>
+         x="539.09949"
+         y="509.92081">ring:4</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="563.34216"
+       x="539.09949"
        y="568.83252"
        id="text14076"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14078"
-         x="563.34216"
-         y="568.83252">ring5</tspan></text>
+         x="539.09949"
+         y="568.83252">ring:5</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="564.51373"
+       x="539.09949"
        y="634.47211"
        id="text14080"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14082"
-         x="564.51373"
-         y="634.47211">ring6</tspan></text>
+         x="539.09949"
+         y="634.47211">ring:6</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="563.92798"
+       x="539.09949"
        y="686.21222"
        id="text14084"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14086"
-         x="563.92798"
-         y="686.21222">ring7</tspan></text>
+         x="539.09949"
+         y="686.21222">ring:7</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="825.75848"
+       x="791.75848"
        y="286.47507"
        id="text14088"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14090"
-         x="825.75848"
-         y="286.47507">vhost0</tspan></text>
+         x="791.75848"
+         y="286.47507">vhost: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="826.58698"
+       x="792.58698"
        y="391.91367"
        id="text14092"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14094"
-         x="826.58698"
-         y="391.91367">vhost1</tspan></text>
+         x="792.58698"
+         y="391.91367">vhost:1</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="824.58691"
+       x="790.58691"
        y="545.07513"
        id="text14096"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14098"
-         x="824.58691"
-         y="545.07513">vhost2</tspan></text>
+         x="790.58691"
+         y="545.07513">vhost:2</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="828.58691"
+       x="794.58691"
        y="658.99902"
        id="text14100"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14102"
-         x="828.58691"
-         y="658.99902">vhost3</tspan></text>
+         x="794.58691"
+         y="658.99902">vhost:3</tspan></text>
   </g>
   <g
      inkscape:groupmode="layer"
      id="layer5"
      inkscape:label="Label-VM"
-     transform="translate(0,-177.16534)">
+     transform="translate(0,-177.16534)"
+     style="display:inline">
     <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="949.42841"
+       x="921.42841"
        y="230.66591"
        id="text13915"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13917"
-         x="949.42841"
+         x="921.42841"
          y="230.66591">VM1</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="950.85706"
+       x="922.85706"
        y="496.66589"
        id="text13919"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan13921"
-         x="950.85706"
+         x="922.85706"
          y="496.66589">VM2</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="944.28558"
+       x="916.28558"
        y="291.52307"
        id="text14018"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14020"
-         x="944.28558"
+         x="916.28558"
          y="291.52307">vNIC0</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="944.28564"
-       y="384.38019"
+       x="916.28564"
+       y="392.38019"
        id="text14022"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14024"
-         x="944.28564"
-         y="384.38019">vNIC1</tspan></text>
+         x="916.28564"
+         y="392.38019">vNIC1</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="944.28564"
+       x="916.28564"
        y="550.9516"
        id="text14026"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14028"
-         x="944.28564"
+         x="916.28564"
          y="550.9516">vNIC2</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="944.28564"
+       x="916.28564"
        y="660.66589"
        id="text14030"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14032"
-         x="944.28564"
+         x="916.28564"
          y="660.66589">vNIC3</tspan></text>
   </g>
   <g
      inkscape:groupmode="layer"
      id="layer7"
      inkscape:label="Label-Processes"
-     transform="translate(0,-177.16534)">
+     transform="translate(0,-177.16534)"
+     style="display:inline">
     <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="404.85703"
-       y="291.23734"
+       x="408.96918"
+       y="289.23734"
        id="text13998"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14000"
-         x="404.85703"
-         y="291.23734">classifier1</tspan></text>
+         x="408.96918"
+         y="289.23734">cls1</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="412.28558"
+       x="408.28558"
        y="390.66592"
        id="text14002"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14004"
-         x="412.28558"
-         y="390.66592">merger1</tspan></text>
+         x="408.28558"
+         y="390.66592">mgr1</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="407.99988"
+       x="408.96918"
        y="533.80878"
        id="text14006"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14008"
-         x="407.99988"
-         y="533.80878">classifier2</tspan></text>
+         x="408.96918"
+         y="533.80878">cls2</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="410.57132"
+       x="408.28558"
        y="647.52307"
        id="text14010"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14012"
-         x="410.57132"
-         y="647.52307">merger2</tspan></text>
+         x="408.28558"
+         y="647.52307">mgr2</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="670.85699"
+       x="666.85699"
        y="253.80878"
        id="text14014"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14016"
-         x="670.85699"
-         y="253.80878">forwarder1</tspan></text>
+         x="666.85699"
+         y="253.80878">fwd1</tspan></text>
     <text
        xml:space="preserve"
        style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="65.396843"
+       x="69.396843"
        y="452.23956"
        id="text14034"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14036"
-         x="65.396843"
+         x="69.396843"
          y="452.23956">SSH</tspan><tspan
          sodipodi:role="line"
-         x="65.396843"
+         x="69.396843"
          y="474.11456"
          id="tspan14038">client</tspan></text>
     <text
        xml:space="preserve"
        style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="1089.9149"
+       x="1061.9149"
        y="327.58777"
        id="text14040"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14056"
-         x="1089.9149"
+         x="1061.9149"
          y="327.58777">SSH</tspan><tspan
          sodipodi:role="line"
          id="tspan14058"
-         x="1089.9149"
-         y="349.46277">server1</tspan></text>
+         x="1061.9149"
+         y="349.46277">Server1</tspan></text>
     <text
        xml:space="preserve"
        style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="1089.2286"
+       x="1061.2286"
        y="591.35944"
        id="text14046"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14052"
-         x="1089.2286"
+         x="1061.2286"
          y="591.35944">SSH</tspan><tspan
          sodipodi:role="line"
          id="tspan14054"
-         x="1089.2286"
+         x="1061.2286"
          y="613.23444">Server2</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="669.85181"
+       x="665.85181"
        y="310.4162"
        id="text14148"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14150"
-         x="669.85181"
-         y="310.4162">forwarder2</tspan></text>
+         x="665.85181"
+         y="310.4162">fwd2</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="667.85181"
+       x="663.85181"
        y="365.22739"
        id="text14152"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14154"
-         x="667.85181"
-         y="365.22739">forwarder3</tspan></text>
+         x="663.85181"
+         y="365.22739">fwd3</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="666.43756"
+       x="662.43756"
        y="422.72485"
        id="text14156"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14158"
-         x="666.43756"
-         y="422.72485">forwarder4</tspan></text>
+         x="662.43756"
+         y="422.72485">fwd4</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="670.68024"
+       x="666.68024"
        y="509.67819"
        id="text14160"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14162"
-         x="670.68024"
-         y="509.67819">forwarder5</tspan></text>
+         x="666.68024"
+         y="509.67819">fwd5</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="669.26605"
+       x="665.26605"
        y="569.07513"
        id="text14164"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14166"
-         x="669.26605"
-         y="569.07513">forwarder6</tspan></text>
+         x="665.26605"
+         y="569.07513">fwd6</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="669.50867"
-       y="633.88635"
+       x="665.50867"
+       y="635.88635"
        id="text14168"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14170"
-         x="669.50867"
-         y="633.88635">forwarder7</tspan></text>
+         x="665.50867"
+         y="635.88635">fwd7</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="668.92291"
-       y="687.52594"
+       x="664.92291"
+       y="689.52594"
        id="text14172"
        sodipodi:linespacing="125%"><tspan
          sodipodi:role="line"
          id="tspan14174"
-         x="668.92291"
-         y="687.52594">forwarder8</tspan></text>
+         x="664.92291"
+         y="689.52594">fwd8</tspan></text>
   </g>
 </svg>
diff --git a/docs/guides/use_cases/spp_mirror.rst b/docs/guides/use_cases/spp_mirror.rst
index 3a9f17b..aae5b78 100644
--- a/docs/guides/use_cases/spp_mirror.rst
+++ b/docs/guides/use_cases/spp_mirror.rst
@@ -27,7 +27,7 @@ sends to two destinations ``phy:1`` and ``phy:2``.
 
 .. _figure_spp_mirror_use_cases_nw_config:
 
-.. figure:: ../images/spp_vf/basic_usecase_mirror_nwconfig.*
+.. figure:: ../images/usecases/mirror_dup_nwconf.*
      :width: 80%
 
      Network configuration of mirroring
-- 
2.7.4

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

* [spp] [PATCH 16/20] docs: fix image of spp_mirror monitoring usecase
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (14 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 15/20] docs: revise labels of image of spp_vf usecase ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 17/20] docs: move image of design of spp_vf ogawa.yasufumi
                   ` (3 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to fix wrong path in image of monitoring with
spp_mirror. Path of image is also changed from deprecated `spp_vf` dir.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 .../images/spp_vf/spp_mirror_usecase_overview.svg  |  544 ------
 docs/guides/images/spp_vf/spp_sample_config.svg    | 1916 --------------------
 .../images/usecases/mirror_monitor_overview.svg    |  559 ++++++
 docs/guides/use_cases/spp_mirror.rst               |    2 +-
 4 files changed, 560 insertions(+), 2461 deletions(-)
 delete mode 100644 docs/guides/images/spp_vf/spp_mirror_usecase_overview.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_sample_config.svg
 create mode 100644 docs/guides/images/usecases/mirror_monitor_overview.svg

diff --git a/docs/guides/images/spp_vf/spp_mirror_usecase_overview.svg b/docs/guides/images/spp_vf/spp_mirror_usecase_overview.svg
deleted file mode 100644
index 3906cd1..0000000
--- a/docs/guides/images/spp_vf/spp_mirror_usecase_overview.svg
+++ /dev/null
@@ -1,544 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="172mm"
-   height="104mm"
-   viewBox="0 0 609.44882 368.50399"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="usecase1_overview (コピー).svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4262"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4662"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4664"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4622"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4624"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4588"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4590"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4548"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4550"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4526"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4528"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4265"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4622-0"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4624-6"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4622-2"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4624-0"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.98994949"
-     inkscape:cx="364.79757"
-     inkscape:cy="196.5388"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer6"
-     showgrid="false"
-     inkscape:window-width="1401"
-     inkscape:window-height="882"
-     inkscape:window-x="452"
-     inkscape:window-y="181"
-     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></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-683.85821)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.66468322;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4136"
-       width="151.67819"
-       height="346.62863"
-       x="13.194297"
-       y="694.57269" />
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.63558829;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4138"
-       width="373.99527"
-       height="343.63477"
-       x="218.30658"
-       y="694.98578" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="VM"
-     transform="translate(0,-21.259834)">
-    <rect
-       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:0.87898606;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4162"
-       width="149.12114"
-       height="79.121017"
-       x="425.33398"
-       y="165.41057" />
-    <rect
-       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:0.89249599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4164"
-       width="149.1071"
-       height="79.107506"
-       x="425.95496"
-       y="283.41559" />
-    <rect
-       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:0.87898606;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4162-5"
-       width="149.12114"
-       height="79.121017"
-       x="425.24158"
-       y="54.106747" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Processes"
-     transform="translate(0,-21.259834)">
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.75997615;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4167"
-       width="74.435692"
-       height="38.313862"
-       x="59.827698"
-       y="222.64328"
-       ry="18.67634" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.83416969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4173-3"
-       width="79.165833"
-       height="34.165829"
-       x="455.1554"
-       y="198.39693"
-       ry="15.768847" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.83416969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4173-3-7"
-       width="79.165833"
-       height="34.165829"
-       x="456.46289"
-       y="314.75189"
-       ry="15.768847" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4173-3-2"
-       width="147.3983"
-       height="139.77394"
-       x="247.87198"
-       y="188.47574"
-       ry="17.033894" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.79608738;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4173-3-2-2"
-       width="147.60222"
-       height="88.460075"
-       x="247.4274"
-       y="79.196106"
-       ry="14.821013" />
-    <rect
-       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.87498325;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4173-3-8"
-       width="87.206238"
-       height="34.125015"
-       x="454.4021"
-       y="86.848404"
-       ry="15.75001" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer7"
-     inkscape:label="Threads"
-     transform="translate(0,67.32284)">
-    <rect
-       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.84642595;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6"
-       width="103.89982"
-       height="37.031754"
-       x="271.70889"
-       y="132.60431"
-       ry="18.515877" />
-    <rect
-       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.84642595;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6-6"
-       width="103.89982"
-       height="37.031754"
-       x="270.97403"
-       y="192.95959"
-       ry="18.515877" />
-    <rect
-       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.76994014;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6-6-9"
-       width="85.793556"
-       height="37.108238"
-       x="279.17944"
-       y="25.119308"
-       ry="18.554119" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Paths"
-     transform="translate(0,-21.259834)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4526)"
-       d="M 132.85714,238.33522 271.1929,237.90593"
-       id="path4228"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4622)"
-       d="m 374.28571,231.76379 79.42858,-14.28571"
-       id="path4230"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart)"
-       d="m 375.14286,294.04951 84,-65.14286"
-       id="path4232"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
-       d="m 373.71429,247.19237 81.42856,76.28571"
-       id="path4234"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4662)"
-       d="M 455.71429,337.47808 375.14286,306.62094"
-       id="path4236"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4548)"
-       d="M 271.76433,291.18149 134.85714,249.76379"
-       id="path4238"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4622-0)"
-       d="m 338.65855,222.44537 -0.37347,-67.80349"
-       id="path4230-2"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4622-2)"
-       d="m 365.62809,127.47583 87.42858,-22.28572"
-       id="path4230-23"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-Processes"
-     transform="translate(0,-21.259834)">
-    <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="96.285713"
-       y="246.62094"
-       id="text4189"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="96.285713"
-         y="246.62094"
-         id="tspan4193"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">ping</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="494.85718"
-       y="221.19237"
-       id="text4195"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="494.85718"
-         y="221.19237"
-         id="tspan4199"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">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="290.28571"
-       y="304.90665"
-       id="text4211"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4213"
-         x="290.28571"
-         y="304.90665">merger</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="288.28574"
-       y="245.19237"
-       id="text4215"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4217"
-         x="288.28574"
-         y="245.19237">classifier</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="496.28815"
-       y="334.61249"
-       id="text4195-5"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="496.28815"
-         y="334.61249"
-         id="tspan4199-3"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">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="262.11279"
-       y="207.85094"
-       id="text4215-9"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4217-1"
-         x="262.11279"
-         y="207.85094">spp_vf</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="259.56412"
-       y="100.60727"
-       id="text4215-9-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4217-1-0"
-         x="259.56412"
-         y="100.60727">spp_mirror</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="298.33615"
-       y="137.85094"
-       id="text4215-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4217-6"
-         x="298.33615"
-         y="137.85094">mirror</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="499.37952"
-       y="109.82571"
-       id="text4195-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="499.37952"
-         y="109.82571"
-         id="tspan4199-9"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">Monitor</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Label-Host"
-     transform="translate(0,-21.259834)">
-    <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="234.58231"
-       y="55.019043"
-       id="text4180"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4182"
-         x="234.58231"
-         y="55.019043">host2</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="25.714283"
-       y="55.763786"
-       id="text4184"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4186"
-         x="25.714283"
-         y="55.763786">host1</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="436.85715"
-       y="186.62094"
-       id="text4219"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4221"
-         x="436.85715"
-         y="186.62094">VM1</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="435.42859"
-       y="305.19235"
-       id="text4223"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4225"
-         x="435.42859"
-         y="305.19235">VM2</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="437.7843"
-       y="74.1772"
-       id="text4219-6"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4221-1"
-         x="437.7843"
-         y="74.1772">VM3</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/images/spp_vf/spp_sample_config.svg b/docs/guides/images/spp_vf/spp_sample_config.svg
deleted file mode 100644
index f6ad3f4..0000000
--- a/docs/guides/images/spp_vf/spp_sample_config.svg
+++ /dev/null
@@ -1,1916 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="172.52679mm"
-   height="120.57605mm"
-   viewBox="0 0 172.52679 120.57605"
-   version="1.1"
-   id="svg4746"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="spp_sample_config.svg">
-  <defs
-     id="defs4740">
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible;"
-       id="marker6296"
-       refX="0.0"
-       refY="0.0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <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="path6294" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker1654"
-       style="overflow:visible;"
-       inkscape:isstock="true">
-      <path
-         id="path1652"
-         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="SquareL"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="SquareL"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1432"
-         d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
-         transform="scale(0.8)" />
-    </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="path1383"
-         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="marker9343"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path9341"
-         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>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1359"
-         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>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4626"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4624" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker3618"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path3616" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1780"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1778" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="marker1604"
-       style="overflow:visible;"
-       inkscape:isstock="true">
-      <path
-         id="path1362"
-         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="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6489"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path6487"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker8593"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path8591"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker8169"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path8167"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker7739"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path7737"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5589"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6959"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6957" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6583"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6581" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6219"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6217" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5849"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5586"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(0.8,0,0,0.8,10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker2605"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path2603"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker2218"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path2216"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1864"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1862"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1516"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1514"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1632"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1630"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1626"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1624"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1620"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1618"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1614"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1612"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1608"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1606"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1560"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1558"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1552"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1550"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4611"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4609"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker26660"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path26658"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker24654"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path24652"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker23978"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path23976"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker23136"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path23134"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker22960"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path22958"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker14793"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path14791"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker13092"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path13090"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker12910"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path12908"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker12568"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path12566"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5180"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow1Lend">
-      <path
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         id="path5178"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4816"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4814"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4059"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4057"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5293"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt"
-         transform="matrix(0.8,0,0,0.8,10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-4"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-4"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4059-8"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4057-0"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2-4"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6-0"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2-2"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6-6"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2-6"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6-3"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2-6-2"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6-3-4"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-5"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-8"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4059-8-1"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4057-0-9"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4059-8-1-6"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4057-0-9-1"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2-4-1"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6-0-0"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2-4-1-9"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6-0-0-3"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2-4-1-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6-0-0-0"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend-2-4-1-7-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2284-6-0-0-0-8"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5180-9"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow1Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         id="path5178-1" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5180-9-9"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow1Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         id="path5178-1-4" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart-6"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path1110-1"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker14793-9"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path14791-9" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker14793-5"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path14791-0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker14793-1"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path14791-4" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker22960-5"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path22958-6" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker1560-3"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path1558-3"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker22960-7"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path22958-61" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker22960-5-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path22958-6-8" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker14793-1-4"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path14791-4-5" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker22960-9"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path22958-60" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker14793-1-9"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path14791-4-1" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker14793-1-9-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path14791-4-1-5" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker22960-9-7"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lstart">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path22958-60-6" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.9899495"
-     inkscape:cx="248.45306"
-     inkscape:cy="268.20932"
-     inkscape:document-units="mm"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1440"
-     inkscape:window-height="851"
-     inkscape:window-x="0"
-     inkscape:window-y="1"
-     inkscape:window-maximized="1"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     viewbox-x="0"
-     scale-x="1" />
-  <metadata
-     id="metadata4743">
-    <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="host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     style="display:inline;opacity:0.98999999"
-     transform="translate(22.342263,-42.641668)">
-    <rect
-       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.3065601;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5291"
-       width="133.51352"
-       height="83.053703"
-       x="16.513613"
-       y="43.498409"
-       ry="0" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.76249981px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="17.927746"
-       y="48.597805"
-       id="text5577"><tspan
-         sodipodi:role="line"
-         id="tspan5575"
-         x="17.927746"
-         y="48.597805"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.76249981px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.19843748">host1</tspan></text>
-    <flowRoot
-       xml:space="preserve"
-       id="flowRoot5610"
-       style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="scale(0.26458333)"><flowRegion
-         id="flowRegion5612"><rect
-           id="rect5614"
-           width="12.857142"
-           height="94.285713"
-           x="147.14285"
-           y="89.662544" /></flowRegion><flowPara
-         id="flowPara5616" /></flowRoot>    <rect
-       style="opacity:1;fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.12471945;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1139-1-3"
-       width="10.275963"
-       height="16.561275"
-       x="16.555996"
-       y="78.303352" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="17.14814"
-       y="87.313164"
-       id="text2024-9-4-2"><tspan
-         sodipodi:role="line"
-         id="tspan1377"
-         x="17.14814"
-         y="87.313164">NIC0</tspan></text>
-    <rect
-       style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.13039371;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect5291-3"
-       width="67.19873"
-       height="29.854179"
-       x="15.828302"
-       y="133.1078"
-       ry="0" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.76249981px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="17.12682"
-       y="138.31961"
-       id="text5577-4"><tspan
-         sodipodi:role="line"
-         id="tspan29058"
-         x="17.12682"
-         y="138.31961"
-         style="stroke-width:0.19843748">host2</tspan></text>
-    <rect
-       style="display:inline;opacity:1;fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.10945041;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1139-1-3-3"
-       width="9.7703886"
-       height="13.414387"
-       x="15.910673"
-       y="141.81795" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="16.710455"
-       y="149.19623"
-       id="text2024-9-4-2-1"><tspan
-         sodipodi:role="line"
-         id="tspan1379"
-         x="16.710455"
-         y="149.19623">NIC1</tspan></text>
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.2295;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6219)"
-       d="m -8.6649471,115.81761 c 0,0 2.429464,-24.597571 25.0354661,-33.266048"
-       id="path29105"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.1579186;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m -0.09414816,115.70324 c 0,0 1.61663996,-17.511419 16.65936316,-23.682657"
-       id="path29105-6"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.17807341px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8593)"
-       d="m -0.68301513,127.63222 c 0,0 1.39932195,16.54751 16.45012913,17.35664"
-       id="path3498"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;opacity:0.98999999;fill:none;stroke:#000000;stroke-width:0.23871794px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m -7.2736641,129.63943 c 0,0 1.97461,21.07376 23.2130541,22.10422"
-       id="path3498-4"
-       inkscape:connector-curvature="0" />
-    <ellipse
-       style="opacity:1;fill:#f8f8b8;fill-opacity:0.99215686;stroke:none;stroke-width:0.98858267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4841"
-       cx="-11.052653"
-       cy="115.04939"
-       rx="6.6995564"
-       ry="6.271925" />
-    <ellipse
-       style="opacity:1;fill:#f8f8b8;fill-opacity:0.99215686;stroke:none;stroke-width:0.98858267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4843"
-       cx="5.2646623"
-       cy="114.58737"
-       rx="6.1293807"
-       ry="5.5592065" />
-    <ellipse
-       style="opacity:1;fill:#f8f8b8;fill-opacity:0.99215686;stroke:none;stroke-width:0.98858267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4845"
-       cx="-1.5251452"
-       cy="112.76298"
-       rx="5.7017498"
-       ry="5.4166622" />
-    <ellipse
-       style="opacity:1;fill:#f8f8b8;fill-opacity:0.99215686;stroke:none;stroke-width:0.98858267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4847"
-       cx="-2.0953214"
-       cy="121.45814"
-       rx="6.8420997"
-       ry="4.9890313" />
-    <ellipse
-       style="opacity:1;fill:#f8f8b8;fill-opacity:0.99215686;stroke:none;stroke-width:0.98858267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4849"
-       cx="8.8633566"
-       cy="122.28472"
-       rx="6.4144683"
-       ry="4.9890313" />
-    <ellipse
-       style="opacity:1;fill:#f8f8b8;fill-opacity:0.99215686;stroke:none;stroke-width:0.98858267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4851"
-       cx="-9.9352274"
-       cy="126.73225"
-       rx="7.8399057"
-       ry="5.9868374" />
-    <ellipse
-       style="opacity:1;fill:#f8f8b8;fill-opacity:0.99215686;stroke:none;stroke-width:0.98858267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4853"
-       cx="-11.075576"
-       cy="122.02831"
-       rx="10.405693"
-       ry="4.7039437" />
-    <ellipse
-       style="opacity:1;fill:#f8f8b8;fill-opacity:0.99215686;stroke:none;stroke-width:0.98858267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="path4855"
-       cx="2.1752608"
-       cy="129.00723"
-       rx="7.6973624"
-       ry="5.1315746" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:4.93888903px;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="-14.074723"
-       y="121.02477"
-       id="text4857"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4859"
-         x="-14.074723"
-         y="121.02477">network</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="spp_vf_process"
-     style="display:inline"
-     transform="translate(22.342263,-42.641668)">
-    <rect
-       style="fill:#ffccaa;fill-opacity:1;stroke:#000000;stroke-width:0.20625183;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1763"
-       width="67.423866"
-       height="63.660942"
-       x="28.270718"
-       y="56.240303"
-       ry="3.3188167" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="31.534889"
-       y="61.07103"
-       id="text1767"><tspan
-         sodipodi:role="line"
-         id="tspan1765"
-         x="31.534889"
-         y="61.07103"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.19843748">spp_vf</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="guests"
-     style="display:inline"
-     transform="translate(22.342263,-42.641668)">
-    <rect
-       style="fill:#f9f9f9;fill-opacity:1;stroke:#000000;stroke-width:0.17461418;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect2020"
-       width="28.352047"
-       height="33.515587"
-       x="118.85268"
-       y="48.505085"
-       ry="2.7929652" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="119.69781"
-       y="56.421913"
-       id="text2024"><tspan
-         sodipodi:role="line"
-         id="tspan2022"
-         x="119.69781"
-         y="56.421913"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.19843748">guest vm1</tspan></text>
-    <rect
-       style="fill:#f9f9f9;fill-opacity:1;stroke:#000000;stroke-width:0.17601651;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect2020-5"
-       width="28.62668"
-       height="33.729359"
-       x="118.56235"
-       y="88.59964"
-       ry="2.8107796" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="119.40305"
-       y="93.332886"
-       id="text2024-5"><tspan
-         sodipodi:role="line"
-         id="tspan2202"
-         x="119.40305"
-         y="93.332886"
-         style="stroke-width:0.19843748">guest vm2</tspan></text>
-    <rect
-       style="opacity:1;fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.11156943;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1139"
-       width="10.349"
-       height="13.159518"
-       x="118.85532"
-       y="62.9557" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="119.4705"
-       y="70.884201"
-       id="text2024-9"><tspan
-         sodipodi:role="line"
-         id="tspan1504"
-         x="119.4705"
-         y="70.884201"
-         style="stroke-width:0.19843748">vNIC</tspan></text>
-    <rect
-       style="opacity:1;fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.11284375;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1139-1"
-       width="10.353926"
-       height="13.455435"
-       x="118.52364"
-       y="99.103775" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="119.14127"
-       y="106.98555"
-       id="text2024-9-4"><tspan
-         sodipodi:role="line"
-         id="tspan1502"
-         x="119.14127"
-         y="106.98555"
-         style="stroke-width:0.19843748">vNIC</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="spp_vf_threads"
-     style="display:inline;opacity:0.98999999"
-     transform="translate(22.342263,-42.641668)">
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.241;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6296);stroke-miterlimit:4;stroke-dasharray:none"
-       d="M 100.80696,76.449807 C 92.088084,96.087573 92.088084,96.087573 92.088084,96.087573"
-       id="path6286"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.241;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
-       d="m 89.320737,76.353127 c 9.452951,19.668818 9.452951,19.668818 9.452951,19.668818"
-       id="path6138"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.241;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1780)"
-       d="m 25.766181,78.300049 5.164281,-5.567772"
-       id="path4812"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="fill:#ffe6d5;fill-opacity:1;stroke:#000000;stroke-width:0.13431512;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1769"
-       width="21.297846"
-       height="5.9898095"
-       x="30.552704"
-       y="67.062508"
-       ry="1.3525398" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="33.065685"
-       y="71.049599"
-       id="text1773"><tspan
-         sodipodi:role="line"
-         id="tspan1461"
-         x="33.065685"
-         y="71.049599"
-         style="stroke-width:0.19843748">classifier</tspan></text>
-    <g
-       id="g1969-0"
-       transform="matrix(0.74487285,0,0,2.6794736,5.5667349,-232.75776)"
-       style="fill:#dedbe3">
-      <rect
-         ry="1.8106976"
-         y="122.52335"
-         x="124.54029"
-         height="8.0187912"
-         width="18.980101"
-         id="rect1769-3-2-7-7"
-         style="fill:#eef4d7;stroke:#000000;stroke-width:0.14670815;stroke-miterlimit:4;stroke-dasharray:none" />
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.21267372"
-       x="107.11629"
-       y="99.856544"
-       id="text1773-6-6-5-2-7"
-       transform="scale(0.93214046,1.0727997)"><tspan
-         sodipodi:role="line"
-         id="tspan1459"
-         x="107.11629"
-         y="99.856544">vhost1</tspan></text>
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14793)"
-       d="m 112.38085,66.046195 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker22960)"
-       d="m 112.47118,108.69207 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-8"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker26660)"
-       d="M 35.08879,104.73064 25.534813,95.139839"
-       id="path26650"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14793-1)"
-       d="m 112.11808,102.39221 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-87"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker22960-5)"
-       d="m 112.7259,72.352919 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-8-7"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1560)"
-       d="m 91.74648,62.375041 c 6.66183,0 6.66183,0 6.66183,0"
-       id="path1556"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.23020414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker22960-7)"
-       d="m 92.70317,113.68427 c 5.68154,0 5.68154,0 5.68154,0"
-       id="path14783-8-2"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2218)"
-       d="m 71.365131,98.43499 c -21.806219,6.92139 -21.806219,6.92139 -21.806219,6.92139"
-       id="path2208"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2605)"
-       d="M 71.648601,114.47803 C 49.558912,106.19594 49.558912,106.19594 49.558912,106.19594"
-       id="path2595"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="fill:#ffe6d5;fill-opacity:1;stroke:#000000;stroke-width:0.12518337;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1769-3"
-       width="18.472155"
-       height="5.9989409"
-       x="31.086758"
-       y="102.57824"
-       ry="1.3546017" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416689px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.19843748"
-       x="33.207432"
-       y="106.17302"
-       id="text1773-6"><tspan
-         sodipodi:role="line"
-         id="tspan1463"
-         x="33.207432"
-         y="106.17302"
-         style="stroke-width:0.19843748">merger</tspan></text>
-    <g
-       id="g2295"
-       transform="matrix(0.75,0,0,0.75,-8.8329671,40.613879)">
-      <rect
-         ry="1.8039205"
-         y="25.020494"
-         x="106.67704"
-         height="7.9887786"
-         width="27.643539"
-         id="rect1769-3-2"
-         style="fill:#ffe6d5;fill-opacity:1;stroke:#000000;stroke-width:0.17672074;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         id="text1773-6-6"
-         y="30.337786"
-         x="107.9122"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
-         xml:space="preserve"><tspan
-           id="tspan3024"
-           sodipodi:role="line"
-           x="107.9122"
-           y="30.337786">forwarder</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.75,0,0,0.75,-8.6426321,76.494617)"
-       style="display:inline"
-       id="g2295-3">
-      <rect
-         ry="1.8039205"
-         y="25.020494"
-         x="106.67704"
-         height="7.9887786"
-         width="27.643539"
-         id="rect1769-3-2-4"
-         style="fill:#ffe6d5;fill-opacity:1;stroke:#000000;stroke-width:0.17672074;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         id="text1773-6-6-0"
-         y="30.337786"
-         x="107.9122"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
-         xml:space="preserve"><tspan
-           id="tspan3024-5"
-           sodipodi:role="line"
-           x="107.9122"
-           y="30.337786">forwarder</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.75,0,0,0.75,-8.8127251,55.913811)"
-       style="display:inline"
-       id="g2295-5">
-      <rect
-         ry="1.8039205"
-         y="25.020494"
-         x="106.67704"
-         height="7.9887786"
-         width="27.643539"
-         id="rect1769-3-2-2"
-         style="fill:#ffe6d5;fill-opacity:1;stroke:#000000;stroke-width:0.17672074;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         id="text1773-6-6-6"
-         y="30.337786"
-         x="107.9122"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
-         xml:space="preserve"><tspan
-           id="tspan3024-9"
-           sodipodi:role="line"
-           x="107.9122"
-           y="30.337786">forwarder</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.75,0,0,0.75,-8.3591551,92.140786)"
-       style="display:inline"
-       id="g2295-0">
-      <rect
-         ry="1.8039205"
-         y="25.020494"
-         x="106.67704"
-         height="7.9887786"
-         width="27.643539"
-         id="rect1769-3-2-8"
-         style="fill:#ffe6d5;fill-opacity:1;stroke:#000000;stroke-width:0.17672074;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         id="text1773-6-6-8"
-         y="30.337786"
-         x="107.9122"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
-         xml:space="preserve"><tspan
-           id="tspan3024-96"
-           sodipodi:role="line"
-           x="107.9122"
-           y="30.337786">forwarder</tspan></text>
-    </g>
-    <rect
-       style="display:inline;fill:#ffccaa;fill-opacity:1;stroke:#000000;stroke-width:0.25501901;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1769-5"
-       width="39.860424"
-       height="11.537248"
-       x="32.144726"
-       y="141.47868"
-       ry="2.6051891" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:3.88410258px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.09710257px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="39.476479"
-       y="139.37953"
-       id="text237"
-       transform="scale(0.93752888,1.0666338)"><tspan
-         sodipodi:role="line"
-         id="tspan235"
-         x="39.476479"
-         y="139.37953"
-         style="stroke-width:0.09710257px">traffic generator</tspan></text>
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker22960-5-6)"
-       d="m 25.530253,151.42019 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-8-7-9"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14793-1-4)"
-       d="m 25.464472,144.88242 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-87-8"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="display:inline;fill:#ffccaa;fill-opacity:1;stroke:#000000;stroke-width:0.11807317;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1769-5-6-3"
-       width="10.223983"
-       height="9.6423111"
-       x="135.23622"
-       y="100.41351"
-       ry="2.1772995" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.21267371"
-       x="145.62817"
-       y="99.263878"
-       id="text1773-6-6-5-2-7-8"
-       transform="scale(0.93214045,1.0727997)"><tspan
-         y="99.263878"
-         x="145.62817"
-         sodipodi:role="line"
-         id="tspan1964-1-7-0"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.21267371">app2</tspan></text>
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker22960-9)"
-       d="m 129.07059,107.59371 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-8-5"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14793-1-9)"
-       d="m 128.71749,103.67511 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-87-5"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="display:inline;fill:#ffccaa;fill-opacity:1;stroke:#000000;stroke-width:0.11807317;stroke-miterlimit:4;stroke-dasharray:none"
-       id="rect1769-5-6-3-4"
-       width="10.223983"
-       height="9.6423111"
-       x="135.76675"
-       y="63.378746"
-       ry="2.1772995" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.21267371"
-       x="146.19733"
-       y="64.742287"
-       id="text1773-6-6-5-2-7-8-7"
-       transform="scale(0.93214045,1.0727997)"><tspan
-         y="64.742287"
-         x="146.19733"
-         sodipodi:role="line"
-         id="tspan1964-1-7-0-4"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.21267371">app1</tspan></text>
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker22960-9-7)"
-       d="m 129.60112,70.558963 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-8-5-3"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;stroke:#000000;stroke-width:0.24075001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14793-1-9-6)"
-       d="m 129.24802,66.640363 c 6.21402,0 6.21402,0 6.21402,0"
-       id="path14783-87-5-1"
-       inkscape:connector-curvature="0" />
-    <g
-       id="g1969"
-       transform="matrix(0.74487285,0,0,2.6794736,5.8732829,-268.99875)"
-       style="fill:#eef4d7">
-      <rect
-         ry="1.8106976"
-         y="122.52335"
-         x="124.54029"
-         height="8.0187912"
-         width="18.980101"
-         id="rect1769-3-2-7"
-         style="fill:#eef4d7;stroke:#000000;stroke-width:0.14670815;stroke-miterlimit:4;stroke-dasharray:none" />
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.21267372"
-       x="107.18159"
-       y="65.916351"
-       id="text1773-6-6-5-2"
-       transform="scale(0.93214046,1.0727997)"><tspan
-         sodipodi:role="line"
-         id="tspan1457"
-         x="107.18159"
-         y="65.916351">vhost0</tspan></text>
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.241;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3618)"
-       d="M 51.850549,69.877318 C 71.174813,62.195833 71.174813,62.195833 71.174813,62.195833"
-       id="path3608"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.241;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4626)"
-       d="m 51.850549,69.708341 c 19.344505,7.616675 19.344505,7.616675 19.344505,7.616675"
-       id="path4616"
-       inkscape:connector-curvature="0" />
-    <g
-       transform="matrix(0.9779811,0,0,0.74420896,-36.583751,-39.321733)"
-       style="display:inline;fill:#eef4d7"
-       id="g2377-5-42">
-      <ellipse
-         inkscape:transform-center-y="-59.720238"
-         inkscape:transform-center-x="13.229167"
-         ry="3.1499126"
-         rx="6.5516987"
-         cy="141.425"
-         cx="100.0881"
-         id="path1780-3-7-12-8"
-         style="display:inline;fill:#eef4d7;fill-opacity:1;stroke:#000000;stroke-width:0.35376999;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         transform="scale(0.93214046,1.0727997)"
-         id="text1773-6-6-5-2-7-4-3-60"
-         y="132.96213"
-         x="102.67519"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#eef4d7;fill-opacity:1;stroke:none;stroke-width:0.28356495"
-         xml:space="preserve"><tspan
-           y="132.96213"
-           x="102.67519"
-           id="tspan2372-8-0"
-           sodipodi:role="line">ring</tspan></text>
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416665px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.21267372"
-       x="61.204704"
-       y="62.727623"
-       id="text1773-6-6-5-2-7-4-4-2"
-       transform="scale(0.93214045,1.0727997)"><tspan
-         sodipodi:role="line"
-         id="tspan1387"
-         x="61.204704"
-         y="62.727623">ring0</tspan></text>
-    <g
-       transform="matrix(0.97798109,0,0,0.74420897,-36.693791,-31.801383)"
-       style="display:inline;opacity:0.98999999;fill:#eef4d7"
-       id="g2377-5-42-1">
-      <ellipse
-         inkscape:transform-center-y="-59.720238"
-         inkscape:transform-center-x="13.229167"
-         ry="3.1499126"
-         rx="6.5516987"
-         cy="141.425"
-         cx="100.0881"
-         id="path1780-3-7-12-8-7"
-         style="display:inline;fill:#eef4d7;fill-opacity:1;stroke:#000000;stroke-width:0.35376999;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         transform="scale(0.93214046,1.0727997)"
-         id="text1773-6-6-5-2-7-4-3-60-5"
-         y="132.96213"
-         x="102.67519"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#eef4d7;fill-opacity:1;stroke:none;stroke-width:0.28356495"
-         xml:space="preserve"><tspan
-           y="132.96213"
-           x="102.67519"
-           id="tspan2372-8-0-8"
-           sodipodi:role="line">ring</tspan></text>
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;display:inline;opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.21267372;"
-       x="61.086658"
-       y="69.73761"
-       id="text1773-6-6-5-2-7-4-4-2-8"
-       transform="scale(0.93214045,1.0727997)"><tspan
-         sodipodi:role="line"
-         id="tspan1451">ring1</tspan></text>
-    <g
-       transform="matrix(0.97798109,0,0,0.74420897,-36.315815,-3.8311448)"
-       style="display:inline;opacity:0.98999999;fill:#eef4d7"
-       id="g2377-5-42-7">
-      <ellipse
-         inkscape:transform-center-y="-59.720238"
-         inkscape:transform-center-x="13.229167"
-         ry="3.1499126"
-         rx="6.5516987"
-         cy="141.425"
-         cx="100.0881"
-         id="path1780-3-7-12-8-3"
-         style="display:inline;fill:#eef4d7;fill-opacity:1;stroke:#000000;stroke-width:0.35376999;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         transform="scale(0.93214046,1.0727997)"
-         id="text1773-6-6-5-2-7-4-3-60-1"
-         y="132.96213"
-         x="102.67519"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#eef4d7;fill-opacity:1;stroke:none;stroke-width:0.28356495"
-         xml:space="preserve"><tspan
-           y="132.96213"
-           x="102.67519"
-           id="tspan2372-8-0-3"
-           sodipodi:role="line">ring</tspan></text>
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;display:inline;opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.21267372;"
-       x="61.492149"
-       y="95.809807"
-       id="text1773-6-6-5-2-7-4-4-2-1"
-       transform="scale(0.93214045,1.0727997)"><tspan
-         sodipodi:role="line"
-         id="tspan1453">ring2</tspan></text>
-    <g
-       transform="matrix(0.97798109,0,0,0.74420897,-36.315815,5.8450456)"
-       style="display:inline;opacity:0.98999999;fill:#eef4d7"
-       id="g2377-5-42-6">
-      <ellipse
-         inkscape:transform-center-y="-59.720238"
-         inkscape:transform-center-x="13.229167"
-         ry="3.1499126"
-         rx="6.5516987"
-         cy="141.425"
-         cx="100.0881"
-         id="path1780-3-7-12-8-0"
-         style="display:inline;fill:#eef4d7;fill-opacity:1;stroke:#000000;stroke-width:0.35376999;stroke-miterlimit:4;stroke-dasharray:none" />
-      <text
-         transform="scale(0.93214046,1.0727997)"
-         id="text1773-6-6-5-2-7-4-3-60-6"
-         y="132.96213"
-         x="102.67519"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#eef4d7;fill-opacity:1;stroke:none;stroke-width:0.28356495"
-         xml:space="preserve"><tspan
-           y="132.96213"
-           x="102.67519"
-           id="tspan2372-8-0-5"
-           sodipodi:role="line">ring</tspan></text>
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.70416667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;display:inline;opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.21267372;"
-       x="61.492153"
-       y="104.82938"
-       id="text1773-6-6-5-2-7-4-4-2-3"
-       transform="scale(0.93214045,1.0727997)"><tspan
-         sodipodi:role="line"
-         id="tspan1455">ring3</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/images/usecases/mirror_monitor_overview.svg b/docs/guides/images/usecases/mirror_monitor_overview.svg
new file mode 100644
index 0000000..f9914f0
--- /dev/null
+++ b/docs/guides/images/usecases/mirror_monitor_overview.svg
@@ -0,0 +1,559 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="172mm"
+   height="104mm"
+   viewBox="0 0 609.44882 368.50399"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="mirror_monitor_overview.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4262"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4662"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4664"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4622"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4624"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4588"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4590"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4548"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4550"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4526"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4528"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4265"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4622-0"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4624-6"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4622-2"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4624-0"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4622-2-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4624-0-6"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="239.03358"
+     inkscape:cy="196.5388"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer6"
+     showgrid="false"
+     inkscape:window-width="1401"
+     inkscape:window-height="882"
+     inkscape:window-x="145"
+     inkscape:window-y="124"
+     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="Host"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-683.85821)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.66468322;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4136"
+       width="151.67819"
+       height="346.62863"
+       x="13.194297"
+       y="694.57269" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.63558829;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4138"
+       width="373.99527"
+       height="343.63477"
+       x="218.30658"
+       y="694.98578" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="VM"
+     transform="translate(0,-21.259834)">
+    <rect
+       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:0.87898606;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4162"
+       width="149.12114"
+       height="79.121017"
+       x="425.33398"
+       y="165.41057" />
+    <rect
+       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:0.89249599;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4164"
+       width="149.1071"
+       height="79.107506"
+       x="425.95496"
+       y="283.41559" />
+    <rect
+       style="opacity:1;fill:#e6ffff;fill-opacity:1;stroke:#000000;stroke-width:0.87898606;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4162-5"
+       width="149.12114"
+       height="79.121017"
+       x="425.24158"
+       y="54.106747" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Processes"
+     transform="translate(0,-21.259834)">
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.75997615;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4167"
+       width="74.435692"
+       height="38.313862"
+       x="59.827698"
+       y="222.64328"
+       ry="18.67634" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.83416969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4173-3"
+       width="79.165833"
+       height="34.165829"
+       x="455.1554"
+       y="198.39693"
+       ry="15.768847" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.83416969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4173-3-7"
+       width="79.165833"
+       height="34.165829"
+       x="456.46289"
+       y="314.75189"
+       ry="15.768847" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4173-3-2"
+       width="147.3983"
+       height="139.77394"
+       x="247.87198"
+       y="188.47574"
+       ry="17.033894" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.79608738;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4173-3-2-2"
+       width="147.60222"
+       height="88.460075"
+       x="247.4274"
+       y="79.196106"
+       ry="14.821013" />
+    <rect
+       style="opacity:1;fill:#ffe8cb;fill-opacity:1;stroke:#000000;stroke-width:0.87498325;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4173-3-8"
+       width="87.206238"
+       height="34.125015"
+       x="454.4021"
+       y="86.848404"
+       ry="15.75001" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="Threads"
+     transform="translate(0,67.32284)">
+    <rect
+       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.84642595;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6"
+       width="103.89982"
+       height="37.031754"
+       x="271.70889"
+       y="132.60431"
+       ry="18.515877" />
+    <rect
+       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.84642595;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6-6"
+       width="103.89982"
+       height="37.031754"
+       x="270.97403"
+       y="192.95959"
+       ry="18.515877" />
+    <rect
+       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.76994014;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6-6-9"
+       width="85.793556"
+       height="37.108238"
+       x="279.17944"
+       y="25.119308"
+       ry="18.554119" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Paths"
+     transform="translate(0,-21.259834)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4526)"
+       d="M 132.85714,238.33522 271.1929,237.90593"
+       id="path4228"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart)"
+       d="m 375.14286,294.04951 84,-65.14286"
+       id="path4232"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="m 373.71429,247.19237 81.42856,76.28571"
+       id="path4234"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4662)"
+       d="M 455.71429,337.47808 375.14286,306.62094"
+       id="path4236"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4548)"
+       d="M 271.76433,291.18149 134.85714,249.76379"
+       id="path4238"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4622-0)"
+       d="m 338.65855,222.44537 -0.37347,-67.80349"
+       id="path4230-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4622-2)"
+       d="m 363.62809,127.47583 89.42858,-22.28572"
+       id="path4230-23"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4622-2-3)"
+       d="m 361.6157,142.01598 90.51996,67.69908"
+       id="path4230-23-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Label-Processes"
+     transform="translate(0,-21.259834)">
+    <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="96.285713"
+       y="246.62094"
+       id="text4189"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="96.285713"
+         y="246.62094"
+         id="tspan4193"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">ping</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="494.85718"
+       y="221.19237"
+       id="text4195"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="494.85718"
+         y="221.19237"
+         id="tspan4199"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">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="290.28571"
+       y="304.90665"
+       id="text4211"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4213"
+         x="290.28571"
+         y="304.90665">merger</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="288.28574"
+       y="245.19237"
+       id="text4215"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4217"
+         x="288.28574"
+         y="245.19237">classifier</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="496.28815"
+       y="334.61249"
+       id="text4195-5"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="496.28815"
+         y="334.61249"
+         id="tspan4199-3"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">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="262.11279"
+       y="207.85094"
+       id="text4215-9"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4217-1"
+         x="262.11279"
+         y="207.85094">spp_vf</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="259.56412"
+       y="100.60727"
+       id="text4215-9-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4217-1-0"
+         x="259.56412"
+         y="100.60727">spp_mirror</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="298.33615"
+       y="137.85094"
+       id="text4215-3"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4217-6"
+         x="298.33615"
+         y="137.85094">mirror</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="499.37952"
+       y="109.82571"
+       id="text4195-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="499.37952"
+         y="109.82571"
+         id="tspan4199-9"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">Monitor</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Label-Host"
+     transform="translate(0,-21.259834)">
+    <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="234.58231"
+       y="55.019043"
+       id="text4180"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4182"
+         x="234.58231"
+         y="55.019043">host2</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="25.714283"
+       y="55.763786"
+       id="text4184"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4186"
+         x="25.714283"
+         y="55.763786">host1</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="436.85715"
+       y="186.62094"
+       id="text4219"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4221"
+         x="436.85715"
+         y="186.62094">VM1</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="435.42859"
+       y="305.19235"
+       id="text4223"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4225"
+         x="435.42859"
+         y="305.19235">VM2</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="437.7843"
+       y="74.1772"
+       id="text4219-6"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4221-1"
+         x="437.7843"
+         y="74.1772">VM3</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/use_cases/spp_mirror.rst b/docs/guides/use_cases/spp_mirror.rst
index aae5b78..036f930 100644
--- a/docs/guides/use_cases/spp_mirror.rst
+++ b/docs/guides/use_cases/spp_mirror.rst
@@ -191,7 +191,7 @@ You use ``spp_mirror`` for copying, and ``spp_vf`` classifying packets.
 
 .. _figure_usecase_monitor_overview:
 
-.. figure:: ../images/spp_vf/spp_mirror_usecase_overview.*
+.. figure:: ../images/usecases/mirror_monitor_overview.*
    :width: 60%
 
    Monitoring with spp_mirror
-- 
2.7.4

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

* [spp] [PATCH 17/20] docs: move image of design of spp_vf
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (15 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 16/20] docs: fix image of spp_mirror monitoring usecase ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 18/20] docs: move images of design of mirror and pcap ogawa.yasufumi
                   ` (2 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to move image of design of spp_vf from deprecated
`spp_vf` directory.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/images/design/spp_vf_overview.svg | 1149 +++++++++++++++++++++++++
 docs/guides/images/spp_vf/spp_vf_overview.svg | 1149 -------------------------
 2 files changed, 1149 insertions(+), 1149 deletions(-)
 create mode 100644 docs/guides/images/design/spp_vf_overview.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_vf_overview.svg

diff --git a/docs/guides/images/design/spp_vf_overview.svg b/docs/guides/images/design/spp_vf_overview.svg
new file mode 100644
index 0000000..a172403
--- /dev/null
+++ b/docs/guides/images/design/spp_vf_overview.svg
@@ -0,0 +1,1149 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="260mm"
+   height="180mm"
+   viewBox="0 0 921.25999 637.79527"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="spp_vf_overview.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6947"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6949"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6787"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6789"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6621"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6623" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6461"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path6463"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6319"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6321"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6171"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6173" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6041"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6043" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5905"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5907"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5787"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5789"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5663"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5665" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5545"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5547"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5445"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5447"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5351"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5353"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5263"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5265"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5181"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5183"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5105"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5107"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5035"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5037"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4971"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4973"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4901"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4903" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4849"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4851" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4803"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4805" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4763"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4765" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4673"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4675"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4633"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4635" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4250"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4253"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="90.890587"
+     inkscape:cy="358.37559"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer5"
+     showgrid="false"
+     inkscape:window-width="1440"
+     inkscape:window-height="851"
+     inkscape:window-x="94"
+     inkscape:window-y="15"
+     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="Host"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-414.56693)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.59598911;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4136"
+       width="763.90179"
+       height="387.28101"
+       x="152.41895"
+       y="427.24677" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.96978432;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4138"
+       width="509.1748"
+       height="178.26108"
+       x="151.26903"
+       y="865.11639" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart)"
+       d="M 149.84776,935.10329 C 95.154229,926.38034 76.496817,863.03298 75.096469,793.68193 77.521574,714.83007 108.31409,656.50793 151.86807,650.24027"
+       id="path4164"
+       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(#Arrow2Lend)"
+       d="M 151.86807,977.52969 C 82.287679,958.09275 36.422683,905.8191 36.710678,789.64132 45.826372,682.60407 86.900979,626.70108 149.84776,605.79357"
+       id="path4166"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.00081313;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4216"
+       width="68.999184"
+       height="78.999184"
+       x="151.50212"
+       y="922.89648"
+       ry="0" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.95396042;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4218"
+       width="69.046043"
+       height="79.046043"
+       x="153.68175"
+       y="589.72577" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer12"
+     inkscape:label="Network">
+    <ellipse
+       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path7870"
+       cx="86.428581"
+       cy="334.79523"
+       rx="40.714283"
+       ry="37.85714" />
+    <ellipse
+       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path7872"
+       cx="105.71429"
+       cy="376.36664"
+       rx="35.714283"
+       ry="25.714285" />
+    <ellipse
+       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path7874"
+       cx="43.571438"
+       cy="317.79523"
+       rx="34.999996"
+       ry="29.999994" />
+    <ellipse
+       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path7876"
+       cx="51.428577"
+       cy="382.7952"
+       rx="32.857143"
+       ry="19.285709" />
+    <ellipse
+       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path7878"
+       cx="39.285732"
+       cy="359.22379"
+       rx="36.428562"
+       ry="18.571426" />
+    <ellipse
+       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path7880"
+       cx="106.42857"
+       cy="346.36667"
+       rx="34.999996"
+       ry="22.857141" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer8"
+     inkscape:label="VM">
+    <rect
+       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.05192161;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4548"
+       width="176.35168"
+       height="158.88628"
+       x="725.49805"
+       y="50.699303"
+       ry="0" />
+    <rect
+       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.07923639;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4550"
+       width="176.32716"
+       height="158.85583"
+       x="726.59851"
+       y="224.95058" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.30062246;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4552"
+       width="68.699387"
+       height="78.699394"
+       x="725.66235"
+       y="96.641693" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.25173223;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4554"
+       width="68.748283"
+       height="78.748283"
+       x="726.94757"
+       y="264.52594" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Processes">
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.86694288;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4174"
+       width="387.50327"
+       height="304.48511"
+       x="229.05197"
+       y="68.278496"
+       ry="28.508348" />
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.15089643;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4176"
+       width="231.5318"
+       height="78.926994"
+       x="266.57211"
+       y="510.42819"
+       ry="24.251741" />
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.86535329;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4556"
+       width="78.088539"
+       height="63.050102"
+       x="812.37872"
+       y="102.40716"
+       ry="31.525051" />
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.28600001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4612"
+       width="77.14286"
+       height="54.285713"
+       x="814.28571"
+       y="283.50952"
+       ry="27.142857" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Threads">
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534"
+       width="128.91641"
+       height="48.916386"
+       x="242.74155"
+       y="140.53328"
+       ry="24.458193" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.18673563;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4536"
+       width="128.81329"
+       height="48.813263"
+       x="238.73215"
+       y="239.60008"
+       ry="24.406631" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.11390722;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4538"
+       width="128.88611"
+       height="48.921562"
+       x="476.50293"
+       y="92.243843"
+       ry="22.773815" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.40811193;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4540"
+       width="128.5798"
+       height="48.638973"
+       x="476.65607"
+       y="163.75711"
+       ry="24.319487" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.19797981;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4542"
+       width="128.79857"
+       height="48.840809"
+       x="476.54666"
+       y="235.02818"
+       ry="24.420404" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.163082;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4544"
+       width="128.83492"
+       height="48.874329"
+       x="476.5285"
+       y="306.38336"
+       ry="24.437164" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="DPDK-Resources">
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.78877908;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4558"
+       cx="419.25562"
+       cy="117.86962"
+       rx="29.605616"
+       ry="19.605614" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.19182909;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4585"
+       cx="419.25562"
+       cy="189.12515"
+       rx="29.404091"
+       ry="19.404089" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.15603304;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4587"
+       cx="419.25562"
+       cy="260.38062"
+       rx="29.421989"
+       ry="19.421988" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.01741946;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4589"
+       cx="419.25562"
+       cy="331.63614"
+       rx="29.491297"
+       ry="19.491293" />
+    <circle
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.23429596;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4591"
+       cx="664.78558"
+       cy="135.29536"
+       r="39.382858" />
+    <circle
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.10145283;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4593"
+       cx="665.35706"
+       cy="304.43823"
+       r="39.44928" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer11"
+     inkscape:label="Path">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4673)"
+       d="m 222,190.65237 21.42857,-20"
+       id="path4623"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4633)"
+       d="M 237.71429,264.93809 222,236.36666"
+       id="path4625"
+       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(#marker4849)"
+       d="m 364.85714,149.2238 30,-22.85714"
+       id="path4713"
+       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(#marker4803)"
+       d="m 367.71429,174.93808 22.85714,11.42858"
+       id="path4715"
+       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(#marker5445)"
+       d="m 448.28571,114.93808 27.14286,0"
+       id="path4717"
+       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(#marker5351)"
+       d="m 447.71429,189.2238 28.57142,0"
+       id="path4719"
+       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(#marker5263)"
+       d="m 474.85714,259.2238 -27.14285,0"
+       id="path4721"
+       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(#marker5181)"
+       d="m 476.28571,333.50951 -30,1.42858"
+       id="path4723"
+       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(#marker4763)"
+       d="m 389.14286,260.65237 -22.85715,1.42857"
+       id="path4725"
+       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(#marker4901)"
+       d="m 389.14286,327.79523 -30,-42.85714"
+       id="path4727"
+       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(#marker5105)"
+       d="m 603.42857,113.50951 22.85714,5.71429"
+       id="path4729"
+       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(#marker4971)"
+       d="m 600.57143,200.65237 40,70"
+       id="path4731"
+       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(#marker5035)"
+       d="m 640.57143,167.79523 -42.85714,74.28571"
+       id="path4733"
+       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(#marker5545)"
+       d="M 629.14286,322.08094 602,324.93809"
+       id="path4735"
+       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(#marker5663)"
+       d="m 699.14286,120.65237 24.28571,0"
+       id="path4737"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6621)"
+       d="m 723.42857,153.50951 -24.28571,0"
+       id="path4739"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6319)"
+       d="m 701.71429,288.08094 25.71428,0"
+       id="path4741"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6461)"
+       d="m 727.42857,323.79523 -27.14286,0"
+       id="path4743"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5787)"
+       d="m 794,118.08094 21.42857,1.42857"
+       id="path4745"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5905)"
+       d="m 815.42857,149.2238 -21.42857,0"
+       id="path4747"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6041)"
+       d="m 795.42857,293.50951 22.85714,0"
+       id="path4749"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6171)"
+       d="m 819.71428,323.50952 -24.28571,-1e-5"
+       id="path4751"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6787)"
+       d="m 219.14286,526.36666 45.71428,0"
+       id="path4753"
+       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(#marker6947)"
+       d="m 266.28571,569.2238 -45.71428,0"
+       id="path4755"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Label-Host"
+     transform="translate(0,-414.56693)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="168.45547"
+       y="460.5798"
+       id="text4160"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4162"
+         x="168.45547"
+         y="460.5798">host1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="169.90868"
+       y="894.6972"
+       id="text4168"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4170"
+         x="169.90868"
+         y="894.6972">host2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="169.94928"
+       y="638.11847"
+       id="text4220"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4222"
+         x="169.94928"
+         y="638.11847">NIC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="161.96959"
+       y="969.36731"
+       id="text4224"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4226"
+         x="161.96959"
+         y="969.36731">NIC</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer10"
+     inkscape:label="Label-VM">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="740.57147"
+       y="140.65236"
+       id="text4596"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4598"
+         x="740.57147"
+         y="140.65236">NIC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="738"
+       y="309.50952"
+       id="text4600"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4602"
+         x="738"
+         y="309.50952">NIC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="734.85712"
+       y="248.36665"
+       id="text4604"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4606"
+         x="734.85712"
+         y="248.36665">VM2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="733.42859"
+       y="74.938087"
+       id="text4608"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4610"
+         x="733.42859"
+         y="74.938087">VM1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="24.285728"
+       y="356.36667"
+       id="text7882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan7884"
+         x="24.285728"
+         y="356.36667">Network</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Label-Processes">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="244.94424"
+       y="104.51596"
+       id="text4208"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4210"
+         x="244.94424"
+         y="104.51596">SPP VF</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="290.7818"
+       y="556.86127"
+       id="text4212"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4214"
+         x="290.7818"
+         y="556.86127">Traffic Generator</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="826.28571"
+       y="139.50951"
+       id="text4614"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4616"
+         x="826.28571"
+         y="139.50951">App1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="826.28571"
+       y="316.08093"
+       id="text4618"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4620"
+         x="826.28571"
+         y="316.08093">App2</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Label-Threads">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="486.6297"
+       y="124.63783"
+       id="text4184"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4186"
+         x="486.6297"
+         y="124.63783">forwarder</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="484.60934"
+       y="197.36884"
+       id="text4188"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4190"
+         x="484.60934"
+         y="197.36884">forwarder</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="486.6297"
+       y="270.09982"
+       id="text4192"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4194"
+         x="486.6297"
+         y="270.09982">forwarder</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="488.64984"
+       y="338.79022"
+       id="text4196"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4198"
+         x="488.64984"
+         y="338.79022">forwarder</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="260.98486"
+       y="270.12006"
+       id="text4200"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4202"
+         x="260.98486"
+         y="270.12006">merger</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="256.96454"
+       y="173.12512"
+       id="text4204"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4206"
+         x="256.96454"
+         y="173.12512">classifier</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer9"
+     inkscape:label="Label-Resources">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="395.62445"
+       y="268.98001"
+       id="text4561"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4563"
+         x="395.62445"
+         y="268.98001">ring</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="396.80792"
+       y="192.14172"
+       id="text4565"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4567"
+         x="396.80792"
+         y="192.14172">ring</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="397.57806"
+       y="335.12506"
+       id="text4569"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4571"
+         x="397.57806"
+         y="335.12506">ring</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="398.16257"
+       y="124.63779"
+       id="text4573"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4575"
+         x="398.16257"
+         y="124.63779">ring</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="632.16406"
+       y="142.16635"
+       id="text4577"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4579"
+         x="632.16406"
+         y="142.16635">vhost</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="632.25977"
+       y="312.18378"
+       id="text4581"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4583"
+         x="632.25977"
+         y="312.18378">vhost</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/images/spp_vf/spp_vf_overview.svg b/docs/guides/images/spp_vf/spp_vf_overview.svg
deleted file mode 100644
index a172403..0000000
--- a/docs/guides/images/spp_vf/spp_vf_overview.svg
+++ /dev/null
@@ -1,1149 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="260mm"
-   height="180mm"
-   viewBox="0 0 921.25999 637.79527"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="spp_vf_overview.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6947"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6949"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6787"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6789"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6621"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6623" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6461"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path6463"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6319"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6321"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6171"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6173" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6041"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6043" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5905"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path5907"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5663"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5665" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5545"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path5547"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5445"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5447"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5351"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5353"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5263"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5265"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5181"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5183"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5105"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5107"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5035"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5037"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4971"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4973"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4901"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4903" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4803"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4805" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4763"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4765" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4673"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4675"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4633"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4635" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4250"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4253"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.7"
-     inkscape:cx="90.890587"
-     inkscape:cy="358.37559"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer5"
-     showgrid="false"
-     inkscape:window-width="1440"
-     inkscape:window-height="851"
-     inkscape:window-x="94"
-     inkscape:window-y="15"
-     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="Host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-414.56693)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.59598911;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4136"
-       width="763.90179"
-       height="387.28101"
-       x="152.41895"
-       y="427.24677" />
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.96978432;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4138"
-       width="509.1748"
-       height="178.26108"
-       x="151.26903"
-       y="865.11639" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart)"
-       d="M 149.84776,935.10329 C 95.154229,926.38034 76.496817,863.03298 75.096469,793.68193 77.521574,714.83007 108.31409,656.50793 151.86807,650.24027"
-       id="path4164"
-       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(#Arrow2Lend)"
-       d="M 151.86807,977.52969 C 82.287679,958.09275 36.422683,905.8191 36.710678,789.64132 45.826372,682.60407 86.900979,626.70108 149.84776,605.79357"
-       id="path4166"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccc" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.00081313;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4216"
-       width="68.999184"
-       height="78.999184"
-       x="151.50212"
-       y="922.89648"
-       ry="0" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.95396042;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4218"
-       width="69.046043"
-       height="79.046043"
-       x="153.68175"
-       y="589.72577" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer12"
-     inkscape:label="Network">
-    <ellipse
-       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path7870"
-       cx="86.428581"
-       cy="334.79523"
-       rx="40.714283"
-       ry="37.85714" />
-    <ellipse
-       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path7872"
-       cx="105.71429"
-       cy="376.36664"
-       rx="35.714283"
-       ry="25.714285" />
-    <ellipse
-       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path7874"
-       cx="43.571438"
-       cy="317.79523"
-       rx="34.999996"
-       ry="29.999994" />
-    <ellipse
-       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path7876"
-       cx="51.428577"
-       cy="382.7952"
-       rx="32.857143"
-       ry="19.285709" />
-    <ellipse
-       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path7878"
-       cx="39.285732"
-       cy="359.22379"
-       rx="36.428562"
-       ry="18.571426" />
-    <ellipse
-       style="opacity:1;fill:#ffee93;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path7880"
-       cx="106.42857"
-       cy="346.36667"
-       rx="34.999996"
-       ry="22.857141" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer8"
-     inkscape:label="VM">
-    <rect
-       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.05192161;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4548"
-       width="176.35168"
-       height="158.88628"
-       x="725.49805"
-       y="50.699303"
-       ry="0" />
-    <rect
-       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.07923639;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4550"
-       width="176.32716"
-       height="158.85583"
-       x="726.59851"
-       y="224.95058" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.30062246;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4552"
-       width="68.699387"
-       height="78.699394"
-       x="725.66235"
-       y="96.641693" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.25173223;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4554"
-       width="68.748283"
-       height="78.748283"
-       x="726.94757"
-       y="264.52594" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Processes">
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.86694288;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4174"
-       width="387.50327"
-       height="304.48511"
-       x="229.05197"
-       y="68.278496"
-       ry="28.508348" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.15089643;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4176"
-       width="231.5318"
-       height="78.926994"
-       x="266.57211"
-       y="510.42819"
-       ry="24.251741" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.86535329;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4556"
-       width="78.088539"
-       height="63.050102"
-       x="812.37872"
-       y="102.40716"
-       ry="31.525051" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.28600001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4612"
-       width="77.14286"
-       height="54.285713"
-       x="814.28571"
-       y="283.50952"
-       ry="27.142857" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Threads">
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534"
-       width="128.91641"
-       height="48.916386"
-       x="242.74155"
-       y="140.53328"
-       ry="24.458193" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.18673563;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4536"
-       width="128.81329"
-       height="48.813263"
-       x="238.73215"
-       y="239.60008"
-       ry="24.406631" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.11390722;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4538"
-       width="128.88611"
-       height="48.921562"
-       x="476.50293"
-       y="92.243843"
-       ry="22.773815" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.40811193;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4540"
-       width="128.5798"
-       height="48.638973"
-       x="476.65607"
-       y="163.75711"
-       ry="24.319487" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.19797981;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4542"
-       width="128.79857"
-       height="48.840809"
-       x="476.54666"
-       y="235.02818"
-       ry="24.420404" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.163082;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4544"
-       width="128.83492"
-       height="48.874329"
-       x="476.5285"
-       y="306.38336"
-       ry="24.437164" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer7"
-     inkscape:label="DPDK-Resources">
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.78877908;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558"
-       cx="419.25562"
-       cy="117.86962"
-       rx="29.605616"
-       ry="19.605614" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.19182909;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4585"
-       cx="419.25562"
-       cy="189.12515"
-       rx="29.404091"
-       ry="19.404089" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.15603304;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4587"
-       cx="419.25562"
-       cy="260.38062"
-       rx="29.421989"
-       ry="19.421988" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.01741946;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4589"
-       cx="419.25562"
-       cy="331.63614"
-       rx="29.491297"
-       ry="19.491293" />
-    <circle
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.23429596;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4591"
-       cx="664.78558"
-       cy="135.29536"
-       r="39.382858" />
-    <circle
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.10145283;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4593"
-       cx="665.35706"
-       cy="304.43823"
-       r="39.44928" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer11"
-     inkscape:label="Path">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4673)"
-       d="m 222,190.65237 21.42857,-20"
-       id="path4623"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4633)"
-       d="M 237.71429,264.93809 222,236.36666"
-       id="path4625"
-       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(#marker4849)"
-       d="m 364.85714,149.2238 30,-22.85714"
-       id="path4713"
-       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(#marker4803)"
-       d="m 367.71429,174.93808 22.85714,11.42858"
-       id="path4715"
-       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(#marker5445)"
-       d="m 448.28571,114.93808 27.14286,0"
-       id="path4717"
-       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(#marker5351)"
-       d="m 447.71429,189.2238 28.57142,0"
-       id="path4719"
-       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(#marker5263)"
-       d="m 474.85714,259.2238 -27.14285,0"
-       id="path4721"
-       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(#marker5181)"
-       d="m 476.28571,333.50951 -30,1.42858"
-       id="path4723"
-       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(#marker4763)"
-       d="m 389.14286,260.65237 -22.85715,1.42857"
-       id="path4725"
-       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(#marker4901)"
-       d="m 389.14286,327.79523 -30,-42.85714"
-       id="path4727"
-       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(#marker5105)"
-       d="m 603.42857,113.50951 22.85714,5.71429"
-       id="path4729"
-       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(#marker4971)"
-       d="m 600.57143,200.65237 40,70"
-       id="path4731"
-       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(#marker5035)"
-       d="m 640.57143,167.79523 -42.85714,74.28571"
-       id="path4733"
-       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(#marker5545)"
-       d="M 629.14286,322.08094 602,324.93809"
-       id="path4735"
-       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(#marker5663)"
-       d="m 699.14286,120.65237 24.28571,0"
-       id="path4737"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6621)"
-       d="m 723.42857,153.50951 -24.28571,0"
-       id="path4739"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6319)"
-       d="m 701.71429,288.08094 25.71428,0"
-       id="path4741"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6461)"
-       d="m 727.42857,323.79523 -27.14286,0"
-       id="path4743"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5787)"
-       d="m 794,118.08094 21.42857,1.42857"
-       id="path4745"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5905)"
-       d="m 815.42857,149.2238 -21.42857,0"
-       id="path4747"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6041)"
-       d="m 795.42857,293.50951 22.85714,0"
-       id="path4749"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6171)"
-       d="m 819.71428,323.50952 -24.28571,-1e-5"
-       id="path4751"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6787)"
-       d="m 219.14286,526.36666 45.71428,0"
-       id="path4753"
-       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(#marker6947)"
-       d="m 266.28571,569.2238 -45.71428,0"
-       id="path4755"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Label-Host"
-     transform="translate(0,-414.56693)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="168.45547"
-       y="460.5798"
-       id="text4160"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4162"
-         x="168.45547"
-         y="460.5798">host1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="169.90868"
-       y="894.6972"
-       id="text4168"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4170"
-         x="169.90868"
-         y="894.6972">host2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="169.94928"
-       y="638.11847"
-       id="text4220"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4222"
-         x="169.94928"
-         y="638.11847">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="161.96959"
-       y="969.36731"
-       id="text4224"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4226"
-         x="161.96959"
-         y="969.36731">NIC</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer10"
-     inkscape:label="Label-VM">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="740.57147"
-       y="140.65236"
-       id="text4596"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4598"
-         x="740.57147"
-         y="140.65236">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="738"
-       y="309.50952"
-       id="text4600"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4602"
-         x="738"
-         y="309.50952">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="734.85712"
-       y="248.36665"
-       id="text4604"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4606"
-         x="734.85712"
-         y="248.36665">VM2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="733.42859"
-       y="74.938087"
-       id="text4608"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4610"
-         x="733.42859"
-         y="74.938087">VM1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="24.285728"
-       y="356.36667"
-       id="text7882"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan7884"
-         x="24.285728"
-         y="356.36667">Network</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-Processes">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="244.94424"
-       y="104.51596"
-       id="text4208"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4210"
-         x="244.94424"
-         y="104.51596">SPP VF</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="290.7818"
-       y="556.86127"
-       id="text4212"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4214"
-         x="290.7818"
-         y="556.86127">Traffic Generator</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="826.28571"
-       y="139.50951"
-       id="text4614"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4616"
-         x="826.28571"
-         y="139.50951">App1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="826.28571"
-       y="316.08093"
-       id="text4618"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4620"
-         x="826.28571"
-         y="316.08093">App2</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Label-Threads">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="486.6297"
-       y="124.63783"
-       id="text4184"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4186"
-         x="486.6297"
-         y="124.63783">forwarder</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="484.60934"
-       y="197.36884"
-       id="text4188"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4190"
-         x="484.60934"
-         y="197.36884">forwarder</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="486.6297"
-       y="270.09982"
-       id="text4192"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4194"
-         x="486.6297"
-         y="270.09982">forwarder</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="488.64984"
-       y="338.79022"
-       id="text4196"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4198"
-         x="488.64984"
-         y="338.79022">forwarder</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="260.98486"
-       y="270.12006"
-       id="text4200"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4202"
-         x="260.98486"
-         y="270.12006">merger</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="256.96454"
-       y="173.12512"
-       id="text4204"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4206"
-         x="256.96454"
-         y="173.12512">classifier</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer9"
-     inkscape:label="Label-Resources">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="395.62445"
-       y="268.98001"
-       id="text4561"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4563"
-         x="395.62445"
-         y="268.98001">ring</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="396.80792"
-       y="192.14172"
-       id="text4565"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4567"
-         x="396.80792"
-         y="192.14172">ring</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="397.57806"
-       y="335.12506"
-       id="text4569"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4571"
-         x="397.57806"
-         y="335.12506">ring</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="398.16257"
-       y="124.63779"
-       id="text4573"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575"
-         x="398.16257"
-         y="124.63779">ring</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="632.16406"
-       y="142.16635"
-       id="text4577"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4579"
-         x="632.16406"
-         y="142.16635">vhost</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="632.25977"
-       y="312.18378"
-       id="text4581"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4583"
-         x="632.25977"
-         y="312.18378">vhost</tspan></text>
-  </g>
-</svg>
-- 
2.7.4

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

* [spp] [PATCH 18/20] docs: move images of design of mirror and pcap
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (16 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 17/20] docs: move image of design of spp_vf ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 19/20] docs: move image of overview of spp_pcap ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 20/20] docs: fix in image of spp_mirror monitor usecase ogawa.yasufumi
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to move images of design of spp_mirror and spp_pcap
from deprecated `spp_vf` directory.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/design/spp_secondary.rst            |   6 +-
 docs/guides/images/design/spp_mirror_design.svg | 564 ++++++++++++++++++++++++
 docs/guides/images/design/spp_pcap_design.svg   | 536 ++++++++++++++++++++++
 docs/guides/images/spp_vf/spp_mirror_design.svg | 564 ------------------------
 docs/guides/images/spp_vf/spp_pcap_design.svg   | 536 ----------------------
 5 files changed, 1103 insertions(+), 1103 deletions(-)
 create mode 100644 docs/guides/images/design/spp_mirror_design.svg
 create mode 100644 docs/guides/images/design/spp_pcap_design.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_mirror_design.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_pcap_design.svg

diff --git a/docs/guides/design/spp_secondary.rst b/docs/guides/design/spp_secondary.rst
index 38c3d01..197b2c2 100644
--- a/docs/guides/design/spp_secondary.rst
+++ b/docs/guides/design/spp_secondary.rst
@@ -113,7 +113,7 @@ for two destinations of vhost interface.
 Incoming packets from rx on host1 are sent to each of vhosts of VM
 by looking up destination MAC address in the packet.
 
-.. figure:: ../images/spp_vf/spp_vf_overview.*
+.. figure:: ../images/design/spp_vf_overview.*
     :width: 72%
 
     Classification of spp_vf for two VMs
@@ -171,7 +171,7 @@ from ``rx`` port are duplicated and sent to each of ``tx`` ports.
 
 .. _figure_spp_mirror_design:
 
-.. figure:: ../images/spp_vf/spp_mirror_design.*
+.. figure:: ../images/design/spp_mirror_design.*
     :width: 45%
 
     Spp_mirror component
@@ -216,7 +216,7 @@ threads unlike spp_vf.
 
 .. _figure_spp_pcap_overview:
 
-.. figure:: ../images/spp_vf/spp_pcap_overview.*
+.. figure:: ../images/design/spp_pcap_overview.*
    :width: 50%
 
    Overview of spp_pcap
diff --git a/docs/guides/images/design/spp_mirror_design.svg b/docs/guides/images/design/spp_mirror_design.svg
new file mode 100644
index 0000000..bd1da65
--- /dev/null
+++ b/docs/guides/images/design/spp_mirror_design.svg
@@ -0,0 +1,564 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="154mm"
+   height="86mm"
+   viewBox="0 0 545.66913 304.72423"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="spp_mirror_design.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker19529"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path19531" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6787"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6789"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6319"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6321"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6041"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6043" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5787"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5789"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5445"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5447"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5351"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5353"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5263"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5265"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5181"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5183"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5105"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5107"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5035"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5037"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4971"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4973"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4849"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4851" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4803"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4805" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4763"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4765" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4250"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5787-7"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5789-5"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4849-0"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4851-9" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4849-0-6"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4851-9-0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5787-0"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5789-2"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6787-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6789-6"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6787-3-5"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6789-6-3"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="12.270417"
+     inkscape:cy="384.32605"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer11"
+     showgrid="false"
+     inkscape:window-width="1685"
+     inkscape:window-height="882"
+     inkscape:window-x="77"
+     inkscape:window-y="110"
+     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="Host"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-747.63807)"
+     style="display:inline">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.06318593;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4136"
+       width="503.00601"
+       height="261.00519"
+       x="20.438236"
+       y="773.21747" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Processes"
+     transform="translate(0,-333.07105)"
+     style="display:inline">
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.28094244;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4174-2"
+       width="312.17203"
+       height="177.92828"
+       x="116.6697"
+       y="399.54535"
+       ry="16.659077" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Threads"
+     transform="translate(0,-333.07105)"
+     style="display:inline">
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6"
+       width="128.91644"
+       height="48.916393"
+       x="146.68469"
+       y="469.62271"
+       ry="24.458197" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="DPDK-Resources"
+     transform="translate(0,-333.07105)"
+     style="display:inline">
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4558-3"
+       cx="356.85724"
+       cy="459.50949"
+       rx="40.042091"
+       ry="19.54208" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4558-3-6"
+       cx="356.00006"
+       cy="534.36664"
+       rx="40.042099"
+       ry="19.542084" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer11"
+     inkscape:label="Path"
+     transform="translate(0,-333.07105)"
+     style="display:inline">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4849-0)"
+       d="m 272.92402,504.18185 43.13199,29.58958"
+       id="path4713-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4849-0-6)"
+       d="m 274.34489,484.7562 41.13199,-24.41043"
+       id="path4713-3-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6787)"
+       d="m 74.000005,492.93803 69.999995,0"
+       id="path3535"
+       inkscape:connector-curvature="0" />
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.99999964;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.99999857,3.99999857;stroke-opacity:1;marker-end:url(#marker6787-3);stroke-dashoffset:0"
+       d="m 396.44989,459.5271 70.00001,0"
+       id="path3535-7"
+       inkscape:connector-curvature="0" />
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6787-3-5)"
+       d="m 396.44991,535.24139 70.00002,0"
+       id="path3535-7-5"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Label-Host"
+     transform="translate(0,-747.63807)"
+     style="display:inline">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="46.455471"
+       y="806.00836"
+       id="text4160"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4162"
+         x="46.455471"
+         y="806.00836">host</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Label-Processes"
+     transform="translate(0,-333.07105)"
+     style="display:inline">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="134.66794"
+       y="428.17276"
+       id="text4208-0"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4210-2"
+         x="134.66794"
+         y="428.17276">spp_mirror</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Label-Threads"
+     transform="translate(0,-333.07105)"
+     style="display:inline">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="178.85202"
+       y="500.82611"
+       id="text4204-2"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4206-9"
+         x="178.85202"
+         y="500.82611">mirror</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer9"
+     inkscape:label="Label-Resources"
+     transform="translate(0,-333.07105)"
+     style="display:inline">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="325.0242"
+       y="541.89813"
+       id="text4573-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4575-5"
+         x="325.0242"
+         y="541.89813">ring:1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="326.73846"
+       y="466.4696"
+       id="text4573-7-3"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4575-5-5"
+         x="326.73846"
+         y="466.4696">ring:0</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/images/design/spp_pcap_design.svg b/docs/guides/images/design/spp_pcap_design.svg
new file mode 100644
index 0000000..5f44431
--- /dev/null
+++ b/docs/guides/images/design/spp_pcap_design.svg
@@ -0,0 +1,536 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="175mm"
+   height="108mm"
+   viewBox="0 0 175 108"
+   version="1.1"
+   id="svg3721"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="spp_pcap_design.svg">
+  <defs
+     id="defs3715">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker8251"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DotM">
+      <path
+         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
+         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         id="path8253"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker8157"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DotM">
+      <path
+         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
+         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         id="path8159"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="DotM"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="DotM"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4963"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker7509"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path7511"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7421"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path7423"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker7339"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path7341"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4920"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 105.00001 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="297.00001 : 105.00001 : 1"
+       inkscape:persp3d-origin="148.5 : 70.000001 : 1"
+       id="perspective4489" />
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker3774"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path3772"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path882"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0-0"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0-2" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0-9"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0-8" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0-7"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0-9" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0-3"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0-0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.76531459"
+     inkscape:cx="164.12939"
+     inkscape:cy="362.20796"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer5"
+     showgrid="false"
+     inkscape:window-width="1426"
+     inkscape:window-height="818"
+     inkscape:window-x="249"
+     inkscape:window-y="77"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     showguides="false" />
+  <metadata
+     id="metadata3718">
+    <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="host"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-189)"
+     style="display:inline">
+    <rect
+       style="display:inline;fill:#ffffff;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3727"
+       width="170.16524"
+       height="102.92783"
+       x="2.6707554"
+       y="191.38858" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.24923126;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4218"
+       width="24.657608"
+       height="10.528026"
+       x="45.595123"
+       y="283.56735" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="process"
+     transform="translate(0,-189)"
+     style="display:inline">
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.35609448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4174-2"
+       width="96.780479"
+       height="58.454899"
+       x="16.536285"
+       y="210.22882"
+       ry="5.4730186" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.30582079;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6"
+       width="34.694183"
+       height="11.69418"
+       x="27.577595"
+       y="230.91638"
+       ry="5.8470902" />
+    <rect
+       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.30582079;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6-6"
+       width="34.694183"
+       height="11.69418"
+       x="73.103943"
+       y="214.21368"
+       ry="5.8470902" />
+    <rect
+       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.30582079;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6-3"
+       width="34.694183"
+       height="11.69418"
+       x="73.103943"
+       y="229.9841"
+       ry="5.8470902" />
+    <rect
+       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.30582079;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6-1"
+       width="34.694183"
+       height="11.69418"
+       x="73.103943"
+       y="245.7545"
+       ry="5.8470902" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="storage"
+     transform="translate(0,-189)"
+     style="display:inline">
+    <g
+       id="g4649"
+       transform="matrix(0.97205429,0,0,0.97207197,13.695352,56.522167)"
+       style="fill:#e5df00;fill-opacity:1">
+      <path
+         sodipodi:nodetypes="sccccs"
+         inkscape:connector-curvature="0"
+         id="path4491-9"
+         d="m 134.87869,188.31932 c -10.94828,0 -19.82361,-3.96245 -19.82361,-8.59627 l 0,-25.28496 39.64722,0 0,25.28496 c 0,4.63382 -8.87533,8.59627 -19.82361,8.59627 z"
+         style="display:inline;fill:#e5df00;fill-opacity:1;stroke:#000000;stroke-width:0.36291653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <ellipse
+         ry="8.8503914"
+         rx="19.823612"
+         cy="154.46054"
+         cx="134.87869"
+         id="path4491-9-6"
+         style="display:inline;fill:#e5df00;fill-opacity:1;stroke:#000000;stroke-width:0.36291653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </g>
+    <rect
+       style="fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4831"
+       width="23.38937"
+       height="12.661969"
+       x="135.21693"
+       y="217.12184"
+       ry="0" />
+    <rect
+       style="display:inline;fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4831-2"
+       width="23.38937"
+       height="12.661968"
+       x="132.78363"
+       y="219.2831"
+       ry="0" />
+    <rect
+       style="display:inline;fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4831-5"
+       width="23.38937"
+       height="12.661968"
+       x="130.84862"
+       y="221.83923"
+       ry="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="arrows"
+     transform="translate(0,-42.000003)">
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="M 59.161449,136.41559 C 59.596546,110.39133 47.773237,133.63781 45.754776,96.382652"
+       id="path4870"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7421)"
+       d="m 61.952727,89.154577 10.273387,0"
+       id="path4874"
+       inkscape:connector-curvature="0" />
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7339)"
+       d="m 59.146522,84.327796 c 3.192538,-4.086353 6.991605,-7.687484 13.626156,-9.020227"
+       id="path4876"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7509)"
+       d="m 59.791548,94.547528 c 5.155833,5.3546 9.05416,6.936682 12.842762,8.189592"
+       id="path4878"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       transform="translate(0,-147)"
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#0000cf;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.12800008, 1.12800008;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8157)"
+       d="m 107.884,219.92784 27.167,-1.84383"
+       id="path4880"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#0000cf;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.12800008, 1.12800008;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#DotM)"
+       d="m 107.782,88.155273 25.06468,-14.90724"
+       id="path4882"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#0000cf;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.12800008, 1.12800008;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8251)"
+       d="M 107.67975,102.72753 130.84031,76.756171"
+       id="path4884"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="label"
+     style="display:inline"
+     transform="translate(0,-102)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:9.41193199px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30388418"
+       x="8.601058"
+       y="117.41691"
+       id="text4536"
+       transform="scale(1.032431,0.96858774)"><tspan
+         sodipodi:role="line"
+         id="tspan4534"
+         x="8.601058"
+         y="117.41691"
+         style="font-size:6.3499999px;stroke-width:0.30388418">host</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="132.86876"
+       y="120.79642"
+       id="text4697"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="132.86876"
+         y="120.79642"
+         id="tspan4701">storage</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="20.967842"
+       y="130.43867"
+       id="text4705"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4707"
+         x="20.967842"
+         y="130.43867">spp_pcap</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="50.226929"
+       y="203.49767"
+       id="text4709"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4711"
+         x="50.226929"
+         y="203.49767">phy:0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="31.709951"
+       y="151.52385"
+       id="text4713"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4715"
+         x="31.709951"
+         y="151.52385">receiver</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="78.404999"
+       y="167.48892"
+       id="text4717"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4719"
+         x="78.404999"
+         y="167.48892">writer1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="78.404999"
+       y="151.41043"
+       id="text4717-9"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4719-1"
+         x="78.404999"
+         y="151.41043">writer2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="78.404999"
+       y="135.33348"
+       id="text4717-9-9"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4719-1-6"
+         x="78.404999"
+         y="135.33348">writer3</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/images/spp_vf/spp_mirror_design.svg b/docs/guides/images/spp_vf/spp_mirror_design.svg
deleted file mode 100644
index bd1da65..0000000
--- a/docs/guides/images/spp_vf/spp_mirror_design.svg
+++ /dev/null
@@ -1,564 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="154mm"
-   height="86mm"
-   viewBox="0 0 545.66913 304.72423"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="spp_mirror_design.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker19529"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path19531" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6787"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6789"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6319"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6321"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6041"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6043" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5445"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5447"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5351"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5353"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5263"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5265"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5181"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5183"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5105"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5107"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5035"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5037"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4971"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4973"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4803"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4805" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4763"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4765" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4250"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789-5"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849-0"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851-9" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849-0-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851-9-0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787-0"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789-2"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6787-3"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6789-6"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6787-3-5"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6789-6-3"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.7"
-     inkscape:cx="12.270417"
-     inkscape:cy="384.32605"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer11"
-     showgrid="false"
-     inkscape:window-width="1685"
-     inkscape:window-height="882"
-     inkscape:window-x="77"
-     inkscape:window-y="110"
-     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="Host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-747.63807)"
-     style="display:inline">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.06318593;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4136"
-       width="503.00601"
-       height="261.00519"
-       x="20.438236"
-       y="773.21747" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Processes"
-     transform="translate(0,-333.07105)"
-     style="display:inline">
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.28094244;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4174-2"
-       width="312.17203"
-       height="177.92828"
-       x="116.6697"
-       y="399.54535"
-       ry="16.659077" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Threads"
-     transform="translate(0,-333.07105)"
-     style="display:inline">
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6"
-       width="128.91644"
-       height="48.916393"
-       x="146.68469"
-       y="469.62271"
-       ry="24.458197" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer7"
-     inkscape:label="DPDK-Resources"
-     transform="translate(0,-333.07105)"
-     style="display:inline">
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558-3"
-       cx="356.85724"
-       cy="459.50949"
-       rx="40.042091"
-       ry="19.54208" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558-3-6"
-       cx="356.00006"
-       cy="534.36664"
-       rx="40.042099"
-       ry="19.542084" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer11"
-     inkscape:label="Path"
-     transform="translate(0,-333.07105)"
-     style="display:inline">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4849-0)"
-       d="m 272.92402,504.18185 43.13199,29.58958"
-       id="path4713-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4849-0-6)"
-       d="m 274.34489,484.7562 41.13199,-24.41043"
-       id="path4713-3-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6787)"
-       d="m 74.000005,492.93803 69.999995,0"
-       id="path3535"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.99999964;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.99999857,3.99999857;stroke-opacity:1;marker-end:url(#marker6787-3);stroke-dashoffset:0"
-       d="m 396.44989,459.5271 70.00001,0"
-       id="path3535-7"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6787-3-5)"
-       d="m 396.44991,535.24139 70.00002,0"
-       id="path3535-7-5"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Label-Host"
-     transform="translate(0,-747.63807)"
-     style="display:inline">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="46.455471"
-       y="806.00836"
-       id="text4160"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4162"
-         x="46.455471"
-         y="806.00836">host</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-Processes"
-     transform="translate(0,-333.07105)"
-     style="display:inline">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="134.66794"
-       y="428.17276"
-       id="text4208-0"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4210-2"
-         x="134.66794"
-         y="428.17276">spp_mirror</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Label-Threads"
-     transform="translate(0,-333.07105)"
-     style="display:inline">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="178.85202"
-       y="500.82611"
-       id="text4204-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4206-9"
-         x="178.85202"
-         y="500.82611">mirror</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer9"
-     inkscape:label="Label-Resources"
-     transform="translate(0,-333.07105)"
-     style="display:inline">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="325.0242"
-       y="541.89813"
-       id="text4573-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575-5"
-         x="325.0242"
-         y="541.89813">ring:1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="326.73846"
-       y="466.4696"
-       id="text4573-7-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575-5-5"
-         x="326.73846"
-         y="466.4696">ring:0</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/images/spp_vf/spp_pcap_design.svg b/docs/guides/images/spp_vf/spp_pcap_design.svg
deleted file mode 100644
index 5f44431..0000000
--- a/docs/guides/images/spp_vf/spp_pcap_design.svg
+++ /dev/null
@@ -1,536 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="175mm"
-   height="108mm"
-   viewBox="0 0 175 108"
-   version="1.1"
-   id="svg3721"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="spp_pcap_design.svg">
-  <defs
-     id="defs3715">
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker8251"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="DotM">
-      <path
-         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
-         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         id="path8253"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker8157"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="DotM">
-      <path
-         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
-         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         id="path8159"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="DotM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="DotM"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4963"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
-         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker7509"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path7511"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker7421"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path7423"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker7339"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path7341"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4920"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 105.00001 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="297.00001 : 105.00001 : 1"
-       inkscape:persp3d-origin="148.5 : 70.000001 : 1"
-       id="perspective4489" />
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker3774"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path3772"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path882"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0-0"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0-2" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0-9"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0-8" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0-7"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0-9" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0-3"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0-0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.76531459"
-     inkscape:cx="164.12939"
-     inkscape:cy="362.20796"
-     inkscape:document-units="mm"
-     inkscape:current-layer="layer5"
-     showgrid="false"
-     inkscape:window-width="1426"
-     inkscape:window-height="818"
-     inkscape:window-x="249"
-     inkscape:window-y="77"
-     inkscape:window-maximized="0"
-     inkscape:snap-bbox="true"
-     showguides="false" />
-  <metadata
-     id="metadata3718">
-    <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="host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-189)"
-     style="display:inline">
-    <rect
-       style="display:inline;fill:#ffffff;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect3727"
-       width="170.16524"
-       height="102.92783"
-       x="2.6707554"
-       y="191.38858" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.24923126;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4218"
-       width="24.657608"
-       height="10.528026"
-       x="45.595123"
-       y="283.56735" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="process"
-     transform="translate(0,-189)"
-     style="display:inline">
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.35609448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4174-2"
-       width="96.780479"
-       height="58.454899"
-       x="16.536285"
-       y="210.22882"
-       ry="5.4730186" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.30582079;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6"
-       width="34.694183"
-       height="11.69418"
-       x="27.577595"
-       y="230.91638"
-       ry="5.8470902" />
-    <rect
-       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.30582079;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6-6"
-       width="34.694183"
-       height="11.69418"
-       x="73.103943"
-       y="214.21368"
-       ry="5.8470902" />
-    <rect
-       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.30582079;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6-3"
-       width="34.694183"
-       height="11.69418"
-       x="73.103943"
-       y="229.9841"
-       ry="5.8470902" />
-    <rect
-       style="display:inline;opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:0.30582079;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6-1"
-       width="34.694183"
-       height="11.69418"
-       x="73.103943"
-       y="245.7545"
-       ry="5.8470902" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="storage"
-     transform="translate(0,-189)"
-     style="display:inline">
-    <g
-       id="g4649"
-       transform="matrix(0.97205429,0,0,0.97207197,13.695352,56.522167)"
-       style="fill:#e5df00;fill-opacity:1">
-      <path
-         sodipodi:nodetypes="sccccs"
-         inkscape:connector-curvature="0"
-         id="path4491-9"
-         d="m 134.87869,188.31932 c -10.94828,0 -19.82361,-3.96245 -19.82361,-8.59627 l 0,-25.28496 39.64722,0 0,25.28496 c 0,4.63382 -8.87533,8.59627 -19.82361,8.59627 z"
-         style="display:inline;fill:#e5df00;fill-opacity:1;stroke:#000000;stroke-width:0.36291653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <ellipse
-         ry="8.8503914"
-         rx="19.823612"
-         cy="154.46054"
-         cx="134.87869"
-         id="path4491-9-6"
-         style="display:inline;fill:#e5df00;fill-opacity:1;stroke:#000000;stroke-width:0.36291653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-    </g>
-    <rect
-       style="fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4831"
-       width="23.38937"
-       height="12.661969"
-       x="135.21693"
-       y="217.12184"
-       ry="0" />
-    <rect
-       style="display:inline;fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4831-2"
-       width="23.38937"
-       height="12.661968"
-       x="132.78363"
-       y="219.2831"
-       ry="0" />
-    <rect
-       style="display:inline;fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4831-5"
-       width="23.38937"
-       height="12.661968"
-       x="130.84862"
-       y="221.83923"
-       ry="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="arrows"
-     transform="translate(0,-42.000003)">
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
-       d="M 59.161449,136.41559 C 59.596546,110.39133 47.773237,133.63781 45.754776,96.382652"
-       id="path4870"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7421)"
-       d="m 61.952727,89.154577 10.273387,0"
-       id="path4874"
-       inkscape:connector-curvature="0" />
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7339)"
-       d="m 59.146522,84.327796 c 3.192538,-4.086353 6.991605,-7.687484 13.626156,-9.020227"
-       id="path4876"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28222221px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7509)"
-       d="m 59.791548,94.547528 c 5.155833,5.3546 9.05416,6.936682 12.842762,8.189592"
-       id="path4878"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       transform="translate(0,-147)"
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#0000cf;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.12800008, 1.12800008;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8157)"
-       d="m 107.884,219.92784 27.167,-1.84383"
-       id="path4880"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#0000cf;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.12800008, 1.12800008;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#DotM)"
-       d="m 107.782,88.155273 25.06468,-14.90724"
-       id="path4882"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#0000cf;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.12800008, 1.12800008;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8251)"
-       d="M 107.67975,102.72753 130.84031,76.756171"
-       id="path4884"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="label"
-     style="display:inline"
-     transform="translate(0,-102)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:9.41193199px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30388418"
-       x="8.601058"
-       y="117.41691"
-       id="text4536"
-       transform="scale(1.032431,0.96858774)"><tspan
-         sodipodi:role="line"
-         id="tspan4534"
-         x="8.601058"
-         y="117.41691"
-         style="font-size:6.3499999px;stroke-width:0.30388418">host</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="132.86876"
-       y="120.79642"
-       id="text4697"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="132.86876"
-         y="120.79642"
-         id="tspan4701">storage</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="20.967842"
-       y="130.43867"
-       id="text4705"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4707"
-         x="20.967842"
-         y="130.43867">spp_pcap</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="50.226929"
-       y="203.49767"
-       id="text4709"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4711"
-         x="50.226929"
-         y="203.49767">phy:0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="31.709951"
-       y="151.52385"
-       id="text4713"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4715"
-         x="31.709951"
-         y="151.52385">receiver</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="78.404999"
-       y="167.48892"
-       id="text4717"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4719"
-         x="78.404999"
-         y="167.48892">writer1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="78.404999"
-       y="151.41043"
-       id="text4717-9"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4719-1"
-         x="78.404999"
-         y="151.41043">writer2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="78.404999"
-       y="135.33348"
-       id="text4717-9-9"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4719-1-6"
-         x="78.404999"
-         y="135.33348">writer3</tspan></text>
-  </g>
-</svg>
-- 
2.7.4

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

* [spp] [PATCH 19/20] docs: move image of overview of spp_pcap
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (17 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 18/20] docs: move images of design of mirror and pcap ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  2019-02-18 11:48 ` [spp] [PATCH 20/20] docs: fix in image of spp_mirror monitor usecase ogawa.yasufumi
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is move image of overview of spp_pcap from deprecated
`spp_vf` directory.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 docs/guides/design/spp_secondary.rst            |   2 +-
 docs/guides/images/design/spp_pcap_overview.svg | 381 ++++++++++++++++++++++++
 docs/guides/images/spp_vf/spp_pcap_overview.svg | 381 ------------------------
 docs/guides/use_cases/spp_pcap.rst              |   2 +-
 4 files changed, 383 insertions(+), 383 deletions(-)
 create mode 100644 docs/guides/images/design/spp_pcap_overview.svg
 delete mode 100644 docs/guides/images/spp_vf/spp_pcap_overview.svg

diff --git a/docs/guides/design/spp_secondary.rst b/docs/guides/design/spp_secondary.rst
index 197b2c2..8a4a739 100644
--- a/docs/guides/design/spp_secondary.rst
+++ b/docs/guides/design/spp_secondary.rst
@@ -239,7 +239,7 @@ packets from ``phy:0`` are captured by using three ``writer`` threads.
 
 .. _figure_spp_pcap_design:
 
-.. figure:: ../images/spp_vf/spp_pcap_design.*
+.. figure:: ../images/design/spp_pcap_design.*
     :width: 55%
 
     spp_pcap internal structure
diff --git a/docs/guides/images/design/spp_pcap_overview.svg b/docs/guides/images/design/spp_pcap_overview.svg
new file mode 100644
index 0000000..7718e30
--- /dev/null
+++ b/docs/guides/images/design/spp_pcap_overview.svg
@@ -0,0 +1,381 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="165mm"
+   height="88mm"
+   viewBox="0 0 165 88"
+   version="1.1"
+   id="svg3721"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="spp_pcap_overview.svg">
+  <defs
+     id="defs3715">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker8251"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DotM">
+      <path
+         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
+         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         id="path8253"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker8157"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DotM">
+      <path
+         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
+         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
+         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+         id="path8159"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker7509"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path7511"
+         style="fill:#0000ea;fill-opacity:1;fill-rule:evenodd;stroke:#0000ea;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4920"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 105 : 1"
+       inkscape:vp_y="0 : 999.99993 : 0"
+       inkscape:vp_z="297 : 105 : 1"
+       inkscape:persp3d-origin="148.49999 : 69.999996 : 1"
+       id="perspective4489" />
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker3774"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path3772"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path882"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0-0"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0-2" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0-9"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0-8" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0-7"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0-9" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1219-0-3"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path1217-0-0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.76531459"
+     inkscape:cx="337.16792"
+     inkscape:cy="362.20796"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1426"
+     inkscape:window-height="818"
+     inkscape:window-x="513"
+     inkscape:window-y="123"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     showguides="false" />
+  <metadata
+     id="metadata3718">
+    <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></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="host"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-209)"
+     style="display:inline">
+    <rect
+       style="display:inline;fill:#ffffff;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3727"
+       width="160.20854"
+       height="82.276924"
+       x="2.6707554"
+       y="212.03949" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.24923126;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4218"
+       width="24.657608"
+       height="10.528026"
+       x="40.515114"
+       y="283.56735" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="process"
+     transform="translate(0,-209)"
+     style="display:inline">
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.35609448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4174-2"
+       width="41.465534"
+       height="11.62158"
+       x="39.85128"
+       y="252.26817"
+       ry="4.0949931" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="storage"
+     transform="translate(0,-209)"
+     style="display:inline">
+    <g
+       id="g4649"
+       transform="matrix(0.97205429,0,0,0.97207197,-14.052477,80.37903)"
+       style="fill:#e5df00;fill-opacity:1">
+      <path
+         sodipodi:nodetypes="sccccs"
+         inkscape:connector-curvature="0"
+         id="path4491-9"
+         d="m 134.87869,188.31932 c -10.94828,0 -19.82361,-3.96245 -19.82361,-8.59627 l 0,-25.28496 39.64722,0 0,25.28496 c 0,4.63382 -8.87533,8.59627 -19.82361,8.59627 z"
+         style="display:inline;fill:#e5df00;fill-opacity:1;stroke:#000000;stroke-width:0.36291653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <ellipse
+         ry="8.8503914"
+         rx="19.823612"
+         cy="154.46054"
+         cx="134.87869"
+         id="path4491-9-6"
+         style="display:inline;fill:#e5df00;fill-opacity:1;stroke:#000000;stroke-width:0.36291653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </g>
+    <rect
+       style="fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4831"
+       width="23.38937"
+       height="12.661969"
+       x="107.4691"
+       y="240.97876"
+       ry="0" />
+    <rect
+       style="display:inline;fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4831-2"
+       width="23.38937"
+       height="12.661968"
+       x="105.0358"
+       y="243.14001"
+       ry="0" />
+    <rect
+       style="display:inline;fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4831-5"
+       width="23.38937"
+       height="12.661968"
+       x="103.10079"
+       y="245.69615"
+       ry="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="arrows"
+     transform="translate(0,-62.000003)">
+    <path
+       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="m 52.216796,136.62018 c -0.245892,-12.686 6.435969,-1.35408 7.576688,-19.51478"
+       id="path4870"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="label"
+     style="display:inline"
+     transform="translate(0,-122)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:9.41193199px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30388418"
+       x="9.6726055"
+       y="141.0219"
+       id="text4536"
+       transform="scale(1.032431,0.96858774)"><tspan
+         sodipodi:role="line"
+         id="tspan4534"
+         x="9.6726055"
+         y="141.0219"
+         style="font-size:6.3499999px;stroke-width:0.30388418">host</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="105.12093"
+       y="144.65334"
+       id="text4697"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="105.12093"
+         y="144.65334"
+         id="tspan4701">storage</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="45.539631"
+       y="172.30495"
+       id="text4705"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4707"
+         x="45.539631"
+         y="172.30495">spp_pcap</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="44.018028"
+       y="203.49767"
+       id="text4709"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4711"
+         x="44.018028"
+         y="203.49767">phy:0</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000ea;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.12800001, 1.12800001;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker7509)"
+       d="m 81.00122,168.5648 22.51255,-6.55415"
+       id="path4642"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/docs/guides/images/spp_vf/spp_pcap_overview.svg b/docs/guides/images/spp_vf/spp_pcap_overview.svg
deleted file mode 100644
index 7718e30..0000000
--- a/docs/guides/images/spp_vf/spp_pcap_overview.svg
+++ /dev/null
@@ -1,381 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="165mm"
-   height="88mm"
-   viewBox="0 0 165 88"
-   version="1.1"
-   id="svg3721"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="spp_pcap_overview.svg">
-  <defs
-     id="defs3715">
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker8251"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="DotM">
-      <path
-         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
-         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         id="path8253"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker8157"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="DotM">
-      <path
-         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
-         style="fill:#0000cf;fill-opacity:1;fill-rule:evenodd;stroke:#0000cf;stroke-width:1pt;stroke-opacity:1"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         id="path8159"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker7509"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path7511"
-         style="fill:#0000ea;fill-opacity:1;fill-rule:evenodd;stroke:#0000ea;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lend"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4920"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 105 : 1"
-       inkscape:vp_y="0 : 999.99993 : 0"
-       inkscape:vp_z="297 : 105 : 1"
-       inkscape:persp3d-origin="148.49999 : 69.999996 : 1"
-       id="perspective4489" />
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker3774"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path3772"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path882"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0-0"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0-2" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0-9"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0-8" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0-7"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0-9" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker1219-0-3"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path1217-0-0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.76531459"
-     inkscape:cx="337.16792"
-     inkscape:cy="362.20796"
-     inkscape:document-units="mm"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1426"
-     inkscape:window-height="818"
-     inkscape:window-x="513"
-     inkscape:window-y="123"
-     inkscape:window-maximized="0"
-     inkscape:snap-bbox="true"
-     showguides="false" />
-  <metadata
-     id="metadata3718">
-    <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></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-209)"
-     style="display:inline">
-    <rect
-       style="display:inline;fill:#ffffff;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       id="rect3727"
-       width="160.20854"
-       height="82.276924"
-       x="2.6707554"
-       y="212.03949" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.24923126;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4218"
-       width="24.657608"
-       height="10.528026"
-       x="40.515114"
-       y="283.56735" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="process"
-     transform="translate(0,-209)"
-     style="display:inline">
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.35609448;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4174-2"
-       width="41.465534"
-       height="11.62158"
-       x="39.85128"
-       y="252.26817"
-       ry="4.0949931" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="storage"
-     transform="translate(0,-209)"
-     style="display:inline">
-    <g
-       id="g4649"
-       transform="matrix(0.97205429,0,0,0.97207197,-14.052477,80.37903)"
-       style="fill:#e5df00;fill-opacity:1">
-      <path
-         sodipodi:nodetypes="sccccs"
-         inkscape:connector-curvature="0"
-         id="path4491-9"
-         d="m 134.87869,188.31932 c -10.94828,0 -19.82361,-3.96245 -19.82361,-8.59627 l 0,-25.28496 39.64722,0 0,25.28496 c 0,4.63382 -8.87533,8.59627 -19.82361,8.59627 z"
-         style="display:inline;fill:#e5df00;fill-opacity:1;stroke:#000000;stroke-width:0.36291653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-      <ellipse
-         ry="8.8503914"
-         rx="19.823612"
-         cy="154.46054"
-         cx="134.87869"
-         id="path4491-9-6"
-         style="display:inline;fill:#e5df00;fill-opacity:1;stroke:#000000;stroke-width:0.36291653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
-    </g>
-    <rect
-       style="fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4831"
-       width="23.38937"
-       height="12.661969"
-       x="107.4691"
-       y="240.97876"
-       ry="0" />
-    <rect
-       style="display:inline;fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4831-2"
-       width="23.38937"
-       height="12.661968"
-       x="105.0358"
-       y="243.14001"
-       ry="0" />
-    <rect
-       style="display:inline;fill:#fcfbe2;fill-opacity:1;stroke:#000000;stroke-width:0.35277781;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4831-5"
-       width="23.38937"
-       height="12.661968"
-       x="103.10079"
-       y="245.69615"
-       ry="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="arrows"
-     transform="translate(0,-62.000003)">
-    <path
-       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
-       d="m 52.216796,136.62018 c -0.245892,-12.686 6.435969,-1.35408 7.576688,-19.51478"
-       id="path4870"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="label"
-     style="display:inline"
-     transform="translate(0,-122)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:9.41193199px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30388418"
-       x="9.6726055"
-       y="141.0219"
-       id="text4536"
-       transform="scale(1.032431,0.96858774)"><tspan
-         sodipodi:role="line"
-         id="tspan4534"
-         x="9.6726055"
-         y="141.0219"
-         style="font-size:6.3499999px;stroke-width:0.30388418">host</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="105.12093"
-       y="144.65334"
-       id="text4697"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="105.12093"
-         y="144.65334"
-         id="tspan4701">storage</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="45.539631"
-       y="172.30495"
-       id="text4705"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4707"
-         x="45.539631"
-         y="172.30495">spp_pcap</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:6.3499999px;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="44.018028"
-       y="203.49767"
-       id="text4709"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4711"
-         x="44.018028"
-         y="203.49767">phy:0</tspan></text>
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000ea;stroke-width:0.28200001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.12800001, 1.12800001;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker7509)"
-       d="m 81.00122,168.5648 22.51255,-6.55415"
-       id="path4642"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/docs/guides/use_cases/spp_pcap.rst b/docs/guides/use_cases/spp_pcap.rst
index cfc1fea..c6ec14b 100644
--- a/docs/guides/use_cases/spp_pcap.rst
+++ b/docs/guides/use_cases/spp_pcap.rst
@@ -18,7 +18,7 @@ incoming packets via ``phy:0`` are dumped as compressed pcap files by using
 
 .. _figure_simple_capture:
 
-.. figure:: ../images/spp_vf/spp_pcap_overview.*
+.. figure:: ../images/design/spp_pcap_overview.*
     :width: 50%
 
     Packet capture with spp_pcap
-- 
2.7.4

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

* [spp] [PATCH 20/20] docs: fix in image of spp_mirror monitor usecase
  2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
                   ` (18 preceding siblings ...)
  2019-02-18 11:48 ` [spp] [PATCH 19/20] docs: move image of overview of spp_pcap ogawa.yasufumi
@ 2019-02-18 11:48 ` ogawa.yasufumi
  19 siblings, 0 replies; 21+ messages in thread
From: ogawa.yasufumi @ 2019-02-18 11:48 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

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

This update is to fix wrong descs in image of spp_mirror monitor usecase
and desc of usecase itself.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 .../images/spp_vf/spp_mirror_usecase_nwconfig.svg  | 1434 -------------------
 docs/guides/images/usecases/mirror_dup_nwconf.svg  |   78 +-
 .../images/usecases/mirror_monitor_nwconf.svg      | 1442 ++++++++++++++++++++
 docs/guides/use_cases/spp_mirror.rst               |   62 +-
 4 files changed, 1524 insertions(+), 1492 deletions(-)
 delete mode 100644 docs/guides/images/spp_vf/spp_mirror_usecase_nwconfig.svg
 create mode 100644 docs/guides/images/usecases/mirror_monitor_nwconf.svg

diff --git a/docs/guides/images/spp_vf/spp_mirror_usecase_nwconfig.svg b/docs/guides/images/spp_vf/spp_mirror_usecase_nwconfig.svg
deleted file mode 100644
index 94f91fb..0000000
--- a/docs/guides/images/spp_vf/spp_mirror_usecase_nwconfig.svg
+++ /dev/null
@@ -1,1434 +0,0 @@
-<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="264mm"
-   height="200mm"
-   viewBox="0 0 935.43323 708.66147"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="spp_mirror_usecase2_nwconfig1.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker19529"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path19531" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker15913"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path15915"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker10517"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path10519"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5786"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5788" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6787"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6789"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6621"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6623" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6461"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path6463"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker6319"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path6321"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6171"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6173" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6041"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6043" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5905"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path5907"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5663"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5665" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5545"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path5547"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5445"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5447"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5351"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5353"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5263"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5265"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5181"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5183"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5105"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5107"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5035"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5037"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4971"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4973"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4901"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4903" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4803"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4805" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4763"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4765" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker4673"
-       style="overflow:visible"
-       inkscape:isstock="true"
-       inkscape:collect="always">
-      <path
-         id="path4675"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4633"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4635" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path4250"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787-7"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789-5"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5663-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5665-2" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849-0"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851-9" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker4849-0-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path4851-9-0" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker6621-2"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path6623-6" />
-    </marker>
-    <marker
-       inkscape:isstock="true"
-       style="overflow:visible"
-       id="marker5663-1"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Lend"
-       inkscape:collect="always">
-      <path
-         inkscape:connector-curvature="0"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         id="path5665-8" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="marker5787-0"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path5789-2"
-         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.7"
-     inkscape:cx="289.78162"
-     inkscape:cy="384.32605"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer11"
-     showgrid="false"
-     inkscape:window-width="1685"
-     inkscape:window-height="882"
-     inkscape:window-x="184"
-     inkscape:window-y="109"
-     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></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Host"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-343.70073)">
-    <rect
-       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.25549436;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4136"
-       width="874.6709"
-       height="675.52728"
-       x="39.034393"
-       y="361.24222" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.88310295;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4218"
-       width="59.116898"
-       height="79.116898"
-       x="39.646317"
-       y="785.69037" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer12"
-     inkscape:label="Network"
-     transform="translate(0,70.866159)" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer8"
-     inkscape:label="VM"
-     transform="translate(0,70.866159)">
-    <rect
-       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4548"
-       width="194.82837"
-       height="138.99298"
-       x="697.48883"
-       y="256.62894"
-       ry="0" />
-    <rect
-       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.06098545;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4550"
-       width="194.80276"
-       height="138.96742"
-       x="698.70312"
-       y="422.84845" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.21666884;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4552"
-       width="68.78334"
-       height="68.78334"
-       x="697.62036"
-       y="298.59973" />
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.17093265;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4554"
-       width="68.829086"
-       height="68.829079"
-       x="698.90717"
-       y="464.48553" />
-    <rect
-       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4548-9"
-       width="239.11613"
-       height="138.85497"
-       x="653.53564"
-       y="-21.632214"
-       ry="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Processes"
-     transform="translate(0,70.866159)">
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4174"
-       width="411.38098"
-       height="425.86972"
-       x="131.25598"
-       y="175.83272"
-       ry="24.712727" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.86535329;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4556"
-       width="78.088539"
-       height="63.050102"
-       x="798.37872"
-       y="302.40717"
-       ry="31.525051" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.28600001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4612"
-       width="77.14286"
-       height="54.285713"
-       x="800.28571"
-       y="477.50952"
-       ry="27.142857" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.02278769;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4556-2"
-       width="109.3597"
-       height="62.892681"
-       x="764.44849"
-       y="24.169632"
-       ry="31.446341" />
-    <rect
-       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4174-2"
-       width="332.19119"
-       height="162.23318"
-       x="130.66011"
-       y="-5.8927774"
-       ry="15.189577" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="Threads"
-     transform="translate(0,70.866159)">
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534"
-       width="128.91641"
-       height="48.916386"
-       x="144.74155"
-       y="312.53329"
-       ry="24.458193" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.18673563;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4536"
-       width="128.81329"
-       height="48.813263"
-       x="140.73215"
-       y="457.6001"
-       ry="24.406631" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.11390722;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4538"
-       width="128.88611"
-       height="48.921562"
-       x="400.50293"
-       y="264.24387"
-       ry="22.773815" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.40811193;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4540"
-       width="128.5798"
-       height="48.638973"
-       x="400.65607"
-       y="335.75711"
-       ry="24.319487" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.19797981;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4542"
-       width="128.79857"
-       height="48.840809"
-       x="400.54669"
-       y="453.0282"
-       ry="24.420404" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.163082;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4544"
-       width="128.83492"
-       height="48.874329"
-       x="400.5285"
-       y="524.38336"
-       ry="24.437164" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4534-6"
-       width="128.91644"
-       height="48.916393"
-       x="170.68469"
-       y="64.194183"
-       ry="24.458197" />
-    <rect
-       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.11390722;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4538-1"
-       width="128.88614"
-       height="48.92157"
-       x="400.02924"
-       y="190.73033"
-       ry="22.773819" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer7"
-     inkscape:label="DPDK-Resources"
-     transform="translate(0,70.866159)">
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558"
-       cx="331.75546"
-       cy="289.86963"
-       rx="40.042084"
-       ry="19.542076" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.38332129;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4585"
-       cx="331.75562"
-       cy="361.12515"
-       rx="39.808346"
-       ry="19.308342" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.34181738;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4587"
-       cx="331.75562"
-       cy="478.38062"
-       rx="39.829098"
-       ry="19.329096" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.18107522;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4589"
-       cx="331.75562"
-       cy="549.63617"
-       rx="39.90947"
-       ry="19.409466" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.14589095;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4591"
-       cx="616.78491"
-       cy="289.2955"
-       rx="45.427063"
-       ry="29.427061" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.02260172;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4593"
-       cx="617.35687"
-       cy="480.43823"
-       rx="45.488708"
-       ry="29.488705" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558-3"
-       cx="368.85724"
-       cy="58.080948"
-       rx="40.042091"
-       ry="19.54208" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4558-3-6"
-       cx="368.00006"
-       cy="120.93811"
-       rx="40.042099"
-       ry="19.542084" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.14589036;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4591-3"
-       cx="620.07153"
-       cy="356.08099"
-       rx="45.427063"
-       ry="29.427067" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.02260172;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4593-5"
-       cx="617.14294"
-       cy="546.93817"
-       rx="45.488716"
-       ry="29.48871" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer11"
-     inkscape:label="Path"
-     transform="translate(0,70.866159)">
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4673)"
-       d="m 97.999997,388.65237 47.428573,-46"
-       id="path4623"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4633)"
-       d="M 143.71429,466.9381 99.999997,428.36666"
-       id="path4625"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4849)"
-       d="m 266.85714,321.2238 30,-22.85714"
-       id="path4713"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4803)"
-       d="m 269.71429,346.93808 22.85714,11.42858"
-       id="path4715"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5351)"
-       d="m 371.71429,361.2238 28.57142,0"
-       id="path4719"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5263)"
-       d="m 398.85714,477.2238 -27.14285,0"
-       id="path4721"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5181)"
-       d="m 400.28571,547.50951 -28,1.42858"
-       id="path4723"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4763)"
-       d="m 291.14286,478.65237 -22.85715,1.42857"
-       id="path4725"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4901)"
-       d="m 291.14286,545.79523 -30,-42.85714"
-       id="path4727"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5105)"
-       d="m 529.42857,289.50951 40.85714,-0.28571"
-       id="path4729"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4971)"
-       d="m 524.57143,372.65237 54,90"
-       id="path4731"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5035)"
-       d="m 586.57143,375.79523 -62.85714,88.28571"
-       id="path4733"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5545)"
-       d="M 571.14286,548.08094 530,548.93809"
-       id="path4735"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5663)"
-       d="m 661.14286,288.65237 36.28571,28"
-       id="path4737"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6621)"
-       d="m 697.42857,355.50952 -32.28571,0"
-       id="path4739"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6319)"
-       d="m 663.71429,480.08094 33.71428,0"
-       id="path4741"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6461)"
-       d="m 699.42857,515.79523 -37.14286,28.00001"
-       id="path4743"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5787)"
-       d="m 766,318.08094 31.42857,1.42857"
-       id="path4745"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5905)"
-       d="m 799.42857,349.2238 -31.42857,0"
-       id="path4747"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6041)"
-       d="m 767.42857,491.50951 32.85714,0"
-       id="path4749"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6171)"
-       d="m 803.71428,521.50952 -34.28571,-10e-6"
-       id="path4751"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5663-6)"
-       d="m 603.13388,48.336112 46.28571,0"
-       id="path4737-0"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5786)"
-       d="M 332.46712,271.19106 C 333.95667,148.23262 225.6988,242.05727 225.69551,115.62756"
-       id="path5778"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4849-0)"
-       d="m 296.92402,98.75332 33.13199,13.58958"
-       id="path4713-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4849-0-6)"
-       d="M 298.34489,79.327665 329.47688,64.917234"
-       id="path4713-3-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10517)"
-       d="m 369.80215,139.89153 c -0.4245,62.70565 -6.10872,86.69137 35.37565,131.34014"
-       id="path10509"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker15913)"
-       d="M 525.36565,202.48038 C 549.1595,178.88163 561.16848,139.61814 559.75144,90.37375"
-       id="path15905"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19529)"
-       d="m 406.18795,66.170694 c 34.98079,25.291246 -1.59394,83.858956 33.51778,124.228466"
-       id="path20649"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5663-1)"
-       d="m -0.14272304,389.93813 38.28571304,0"
-       id="path4737-7"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6621-2)"
-       d="m 38.14299,430.79528 -36.2857117,0"
-       id="path4739-92"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5787-0)"
-       d="m 722.46751,52.523962 41.42857,-0.57143"
-       id="path4745-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="Label-Host"
-     transform="translate(0,-343.70073)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="70.455467"
-       y="396.5798"
-       id="text4160"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4162"
-         x="70.455467"
-         y="396.5798">host</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="49.94928"
-       y="834.11847"
-       id="text4220"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4222"
-         x="49.94928"
-         y="834.11847">NIC</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer10"
-     inkscape:label="Label-VM"
-     transform="translate(0,70.866159)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="712.57147"
-       y="340.65237"
-       id="text4596"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4598"
-         x="712.57147"
-         y="340.65237">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="710"
-       y="507.50952"
-       id="text4600"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4602"
-         x="710"
-         y="507.50952">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="706.85712"
-       y="450.36667"
-       id="text4604"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4606"
-         x="706.85712"
-         y="450.36667">VM2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="705.42859"
-       y="284.93811"
-       id="text4608"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4610"
-         x="705.42859"
-         y="284.93811">VM1</tspan></text>
-    <rect
-       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.21666873;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="rect4552-1"
-       width="68.783356"
-       height="68.78334"
-       x="653.61139"
-       y="19.712051" />
-    <ellipse
-       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.30184615;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path4591-7"
-       cx="559.27594"
-       cy="48.979134"
-       rx="43.849094"
-       ry="39.349083" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="668.5625"
-       y="62.336121"
-       id="text4596-0"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4598-6"
-         x="668.5625"
-         y="62.336121">NIC</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="661.41962"
-       y="6.6218543"
-       id="text4608-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4610-6"
-         x="661.41962"
-         y="6.6218543">VM3</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Label-Processes"
-     transform="translate(0,70.866159)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="146.94424"
-       y="208.51596"
-       id="text4208"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4210"
-         x="146.94424"
-         y="208.51596">spp_vf</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="812.28571"
-       y="339.50952"
-       id="text4614"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4616"
-         x="812.28571"
-         y="339.50952">App1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="812.28571"
-       y="510.08093"
-       id="text4618"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4620"
-         x="812.28571"
-         y="510.08093">App2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="778.27673"
-       y="61.193268"
-       id="text4614-1"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4616-8"
-         x="778.27673"
-         y="61.193268">Monitor</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="152.66794"
-       y="26.74424"
-       id="text4208-0"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4210-2"
-         x="152.66794"
-         y="26.74424">spp_mirror</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="Label-Threads"
-     transform="translate(0,70.866159)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="406.6297"
-       y="296.63785"
-       id="text4184"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4186"
-         x="406.6297"
-         y="296.63785">forwarder1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="404.60938"
-       y="369.36884"
-       id="text4188"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4190"
-         x="404.60938"
-         y="369.36884">forwarder2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="406.6297"
-       y="488.09982"
-       id="text4192"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4194"
-         x="406.6297"
-         y="488.09982">forwarder3</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="408.64984"
-       y="556.79022"
-       id="text4196"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4198"
-         x="408.64984"
-         y="556.79022">forwarde4</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="160.98486"
-       y="488.12006"
-       id="text4200"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4202"
-         x="160.98486"
-         y="488.12006">merger1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="162.96454"
-       y="345.12512"
-       id="text4204"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4206"
-         x="162.96454"
-         y="345.12512">classifier</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="196.85202"
-       y="95.397583"
-       id="text4204-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4206-9"
-         x="196.85202"
-         y="95.397583">mirror1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="421.7359"
-       y="222.54684"
-       id="text4200-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4202-7"
-         x="421.7359"
-         y="222.54684">merger3</tspan></text>
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer9"
-     inkscape:label="Label-Resources"
-     transform="translate(0,70.866159)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="299.62445"
-       y="484.98001"
-       id="text4561"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4563"
-         x="299.62445"
-         y="484.98001">ring:2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="300.80792"
-       y="366.14172"
-       id="text4565"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4567"
-         x="300.80792"
-         y="366.14172">ring:1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="301.57806"
-       y="555.12506"
-       id="text4569"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4571"
-         x="301.57806"
-         y="555.12506">ring:3</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="300.16257"
-       y="296.63779"
-       id="text4573"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575"
-         x="300.16257"
-         y="296.63779">ring:0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="578.16406"
-       y="296.16635"
-       id="text4577"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4579"
-         x="578.16406"
-         y="296.16635">vhost:0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="576.25977"
-       y="490.18378"
-       id="text4581"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4583"
-         x="576.25977"
-         y="490.18378">vhost:2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="520.15509"
-       y="55.850098"
-       id="text4577-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4579-9"
-         x="520.15509"
-         y="55.850098">vhost:4</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="337.0242"
-       y="128.4696"
-       id="text4573-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575-5"
-         x="337.0242"
-         y="128.4696">ring:8</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="338.73846"
-       y="65.041061"
-       id="text4573-7-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4575-5-5"
-         x="338.73846"
-         y="65.041061">ring:9</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="581.09735"
-       y="363.30969"
-       id="text4577-6"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4579-7"
-         x="581.09735"
-         y="363.30969">vhost:1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="578.01495"
-       y="553.59552"
-       id="text4581-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4583-5"
-         x="578.01495"
-         y="553.59552">vhost:3</tspan></text>
-  </g>
-</svg>
diff --git a/docs/guides/images/usecases/mirror_dup_nwconf.svg b/docs/guides/images/usecases/mirror_dup_nwconf.svg
index 424983e..d6c4461 100644
--- a/docs/guides/images/usecases/mirror_dup_nwconf.svg
+++ b/docs/guides/images/usecases/mirror_dup_nwconf.svg
@@ -185,10 +185,10 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="1"
-     inkscape:cx="458.31394"
+     inkscape:cx="260.59053"
      inkscape:cy="201.90648"
      inkscape:document-units="px"
-     inkscape:current-layer="layer2"
+     inkscape:current-layer="layer6"
      showgrid="false"
      inkscape:window-width="1539"
      inkscape:window-height="960"
@@ -208,7 +208,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -221,6 +221,11 @@
      sodipodi:insensitive="true" />
   <g
      inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="VM"
+     transform="translate(5.6666944,-282.47184)" />
+  <g
+     inkscape:groupmode="layer"
      id="layer2"
      inkscape:label="Host"
      transform="translate(5.6666944,-282.47184)">
@@ -276,38 +281,21 @@
        height="61.144356"
        x="272.69714"
        y="546.86853" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317-5)"
-       d="m 476.46009,397.58307 c -24.18922,79.15053 -76.31287,83.4331 -131.14472,80.45738"
-       id="path17255-4"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317-5-3)"
-       d="M 478.31863,398.86691 C 480.4669,513.88523 434.48361,568.58259 345.30545,569.14588"
-       id="path17255-4-4"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
   </g>
   <g
      inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="VM"
-     transform="translate(5.6666944,-282.47184)" />
-  <g
-     inkscape:groupmode="layer"
      id="layer6"
      inkscape:label="Processes"
      transform="translate(5.6666944,-282.47184)">
     <rect
        style="opacity:1;fill:#ffedd1;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect13924"
-       width="98.580269"
-       height="39.186874"
-       x="428.10144"
-       y="359.60025"
-       ry="19.593437"
-       rx="19.593437" />
+       width="138.58026"
+       height="125.18685"
+       x="409.10144"
+       y="317.60028"
+       ry="20.999994"
+       rx="0" />
     <rect
        style="opacity:1;fill:#aaeeff;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        id="rect14176"
@@ -317,6 +305,15 @@
        y="434.78629"
        ry="16.092466"
        rx="16.092466" />
+    <rect
+       style="opacity:1;fill:#fcf8cd;fill-opacity:1;stroke:#000000;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13924-3"
+       width="87.580238"
+       height="39.186867"
+       x="437.04297"
+       y="359.41763"
+       ry="19.593433"
+       rx="17.407112" />
   </g>
   <g
      inkscape:groupmode="layer"
@@ -330,7 +327,7 @@
        inkscape:connector-curvature="0" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317)"
-       d="m 344.98321,379.08533 80.51666,0.46371"
+       d="m 344.77436,379.08533 89.75485,0.46371"
        id="path17255"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
@@ -352,6 +349,19 @@
        id="path17255-35"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317-5)"
+       d="m 478.47639,400.63284 c -24.56096,76.27576 -77.48564,80.40279 -133.16014,77.53515"
+       id="path17255-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       transform="translate(3.8275896e-8,-2.6534646e-6)"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker17317-5-3)"
+       d="M 478.31863,398.86691 C 480.4669,513.88523 434.48361,568.58259 345.30545,569.14588"
+       id="path17255-4-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
   </g>
   <g
      inkscape:groupmode="layer"
@@ -507,7 +517,7 @@
          id="tspan944"
          x="476.73199"
          y="385.73734"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">mir1</tspan></text>
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">mir</tspan></text>
     <text
        xml:space="preserve"
        style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
@@ -520,5 +530,17 @@
          y="462.73956"
          id="tspan14038"
          style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">ping</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="470.71738"
+       y="343.56073"
+       id="text13998-8"
+       sodipodi:linespacing="0%"><tspan
+         sodipodi:role="line"
+         id="tspan944-8"
+         x="470.71738"
+         y="343.56073"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.49999809px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.93749988;stroke-miterlimit:4;stroke-dasharray:none">spp_mirror</tspan></text>
   </g>
 </svg>
diff --git a/docs/guides/images/usecases/mirror_monitor_nwconf.svg b/docs/guides/images/usecases/mirror_monitor_nwconf.svg
new file mode 100644
index 0000000..fecc626
--- /dev/null
+++ b/docs/guides/images/usecases/mirror_monitor_nwconf.svg
@@ -0,0 +1,1442 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="275mm"
+   height="200mm"
+   viewBox="0 0 974.40964 708.66147"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="mirror_monitor_nwconf.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker19529"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path19531" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker15913"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path15915"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker10517"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path10519"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5786"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5788" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6787"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6789"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6621"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6623" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6461"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path6463"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6319"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6321"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6171"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6173" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6041"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6043" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5905"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5907"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5787"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5789"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5663"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5665" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5545"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5547"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5445"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5447"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5351"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5353"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5263"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5265"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5181"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5183"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5105"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5107"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5035"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5037"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4971"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4973"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4901"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4903" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4849"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4851" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4803"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4805" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4763"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4765" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4673"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4675"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4633"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4635" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4250"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5787-7"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5789-5"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5663-6"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5665-2" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4849-0"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4851-9" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4849-0-6"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4851-9-0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6621-2"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6623-6" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5663-1"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5665-8" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5787-0"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5789-2"
+         style="fill:#0000c8;fill-opacity:1;fill-rule:evenodd;stroke:#0000c8;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.49497475"
+     inkscape:cx="295.02818"
+     inkscape:cy="401.1126"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1685"
+     inkscape:window-height="882"
+     inkscape:window-x="184"
+     inkscape:window-y="109"
+     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></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Host"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-343.70073)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.25549436;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4136"
+       width="921.13788"
+       height="675.52728"
+       x="39.034393"
+       y="361.24222" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:0.88310295;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4218"
+       width="95.482399"
+       height="79.116898"
+       x="39.646317"
+       y="785.69037" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer12"
+     inkscape:label="Network"
+     transform="translate(0,70.866159)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer8"
+     inkscape:label="VM"
+     transform="translate(0,70.866159)">
+    <rect
+       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4548"
+       width="194.82837"
+       height="138.99298"
+       x="733.48883"
+       y="256.62894"
+       ry="0" />
+    <rect
+       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.06098545;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4550"
+       width="194.80276"
+       height="138.96742"
+       x="734.70312"
+       y="422.84845" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.21666884;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4552"
+       width="68.78334"
+       height="68.78334"
+       x="733.62036"
+       y="298.59973" />
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.17093265;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4554"
+       width="68.829086"
+       height="68.829079"
+       x="734.90717"
+       y="464.48553" />
+    <rect
+       style="opacity:1;fill:#eafdff;fill-opacity:1;stroke:#000000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4548-9"
+       width="239.11613"
+       height="138.85497"
+       x="689.53564"
+       y="-21.632214"
+       ry="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Processes"
+     transform="translate(0,70.866159)">
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4174"
+       width="411.38098"
+       height="425.86972"
+       x="167.25598"
+       y="175.83272"
+       ry="24.712727" />
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:0.86535329;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4556"
+       width="78.088539"
+       height="63.050102"
+       x="834.37872"
+       y="302.40717"
+       ry="31.525051" />
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.28600001;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4612"
+       width="77.14286"
+       height="54.285713"
+       x="836.28571"
+       y="477.50952"
+       ry="27.142857" />
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.02278769;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4556-2"
+       width="109.3597"
+       height="62.892681"
+       x="800.44849"
+       y="24.169632"
+       ry="31.446341" />
+    <rect
+       style="opacity:1;fill:#ffefde;fill-opacity:1;stroke:#000000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4174-2"
+       width="332.19119"
+       height="162.23318"
+       x="166.66011"
+       y="-5.8927774"
+       ry="15.189577" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Threads"
+     transform="translate(0,70.866159)">
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534"
+       width="88.916397"
+       height="48.916386"
+       x="200.17012"
+       y="312.53329"
+       ry="24.458193" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.18673563;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4536"
+       width="88.813278"
+       height="48.813263"
+       x="196.73215"
+       y="457.6001"
+       ry="24.406631" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.11390722;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4538"
+       width="98.886108"
+       height="48.921562"
+       x="460.50293"
+       y="264.24387"
+       ry="22.773815" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.40811193;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4540"
+       width="98.591904"
+       height="48.638973"
+       x="460.65607"
+       y="335.75711"
+       ry="24.319487" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.19797981;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4542"
+       width="98.80204"
+       height="48.840809"
+       x="460.54669"
+       y="453.0282"
+       ry="24.420404" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.163082;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4544"
+       width="98.836937"
+       height="48.874329"
+       x="460.5285"
+       y="524.38336"
+       ry="24.437164" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.08361697;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4534-6"
+       width="88.916397"
+       height="48.916393"
+       x="228.68469"
+       y="64.194183"
+       ry="24.458197" />
+    <rect
+       style="opacity:1;fill:#fffdc4;fill-opacity:1;stroke:#000000;stroke-width:1.11390722;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4538-1"
+       width="98.886108"
+       height="48.92157"
+       x="460.02924"
+       y="190.73033"
+       ry="22.773819" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="DPDK-Resources"
+     transform="translate(0,70.866159)">
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584504;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4558"
+       cx="377.25549"
+       cy="284.86963"
+       rx="49.542088"
+       ry="24.542084" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.38332129;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4585"
+       cx="377.25562"
+       cy="356.12515"
+       rx="49.30835"
+       ry="24.308346" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.34181738;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4587"
+       cx="377.25562"
+       cy="473.38065"
+       rx="49.329098"
+       ry="24.329098" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.18107522;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4589"
+       cx="377.25562"
+       cy="544.63617"
+       rx="49.409473"
+       ry="24.409468" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.14589095;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4591"
+       cx="652.78491"
+       cy="289.2955"
+       rx="45.427063"
+       ry="29.427061" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.02260172;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4593"
+       cx="653.35687"
+       cy="480.43823"
+       rx="45.488708"
+       ry="29.488705" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584492;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4558-3"
+       cx="412.35724"
+       cy="53.080944"
+       rx="49.542088"
+       ry="24.542084" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:0.91584498;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4558-3-6"
+       cx="413.50006"
+       cy="115.93812"
+       rx="49.542088"
+       ry="24.542084" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.14589036;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4591-3"
+       cx="656.07153"
+       cy="356.08099"
+       rx="45.427063"
+       ry="29.427067" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.02260172;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4593-5"
+       cx="653.14294"
+       cy="546.93817"
+       rx="45.488716"
+       ry="29.48871" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer11"
+     inkscape:label="Path"
+     transform="translate(0,70.866159)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4673)"
+       d="m 133.83008,388.65237 64.5727,-46"
+       id="path4623"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4633)"
+       d="M 196.18652,474.14751 138.19661,428.40454"
+       id="path4625"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4849)"
+       d="m 282.53866,321.2238 49.94771,-22.85714"
+       id="path4713"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4803)"
+       d="m 286.69746,344.93808 41.26,11.42858"
+       id="path4715"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5351)"
+       d="m 427.7143,357.22616 32.38868,0"
+       id="path4719"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5263)"
+       d="m 459.90792,477.22073 -31.90059,0"
+       id="path4721"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5181)"
+       d="m 460.42759,547.50951 -32.17631,-0.57142"
+       id="path4723"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4763)"
+       d="m 328.81957,478.65237 -43.89681,1.42857"
+       id="path4725"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4901)"
+       d="M 327.33128,545.84936 283.14801,497.93895"
+       id="path4727"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5105)"
+       d="m 559.05931,289.50951 47.27281,-0.28571"
+       id="path4729"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4971)"
+       d="m 557.52021,367.57131 57.03747,95.04318"
+       id="path4731"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5035)"
+       d="m 622.57143,375.79523 -62.85714,88.28571"
+       id="path4733"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5545)"
+       d="m 607.48701,548.08094 -48.60116,0.85715"
+       id="path4735"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5663)"
+       d="m 697.14286,288.65237 36.28571,28"
+       id="path4737"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6621)"
+       d="m 733.42857,355.50952 -32.28571,0"
+       id="path4739"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6319)"
+       d="m 699.71429,480.08094 33.71428,0"
+       id="path4741"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6461)"
+       d="m 735.42857,515.85494 -37.14286,23.94962"
+       id="path4743"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5787)"
+       d="m 802,318.08094 31.42857,1.42857"
+       id="path4745"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5905)"
+       d="m 835.42857,349.2238 -31.42857,0"
+       id="path4747"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6041)"
+       d="m 803.42857,491.50951 32.85714,0"
+       id="path4749"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#006400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6171)"
+       d="m 839.71428,521.50952 -34.28571,-10e-6"
+       id="path4751"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5663-6)"
+       d="m 639.13388,48.336112 46.28571,0"
+       id="path4737-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5786)"
+       d="M 368.46712,260.99248 C 369.95667,146.08557 261.6988,233.76642 261.69551,115.61555"
+       id="path5778"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4849-0)"
+       d="m 314.03738,98.75332 51.56108,13.58958"
+       id="path4713-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.00000006, 4.00000006;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4849-0-6)"
+       d="M 313.98435,77.327665 364.9876,62.917234"
+       id="path4713-3-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10517)"
+       d="m 413.86774,139.86275 c -0.56703,64.63749 -8.15978,89.36217 47.25337,135.3865"
+       id="path10509"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker15913)"
+       d="M 557.36565,202.48038 C 581.1595,178.88163 593.16848,139.61814 591.75144,90.37375"
+       id="path15905"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker19529)"
+       d="m 460.18795,66.170694 c 34.98079,25.291246 -1.59394,83.858956 33.51778,124.228466"
+       id="path20649"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5663-1)"
+       d="m -0.14272304,389.93813 38.28571304,0"
+       id="path4737-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6621-2)"
+       d="m 38.14299,430.79528 -36.2857117,0"
+       id="path4739-92"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000c8;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5787-0)"
+       d="m 758.46751,52.523962 41.42857,-0.57143"
+       id="path4745-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Label-Host"
+     transform="translate(0,-343.70073)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="70.455467"
+       y="396.5798"
+       id="text4160"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4162"
+         x="70.455467"
+         y="396.5798">host</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="87.94928"
+       y="818.11847"
+       id="text4220"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4222"
+         x="87.94928"
+         y="818.11847"
+         style="line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle">NIC</tspan><tspan
+         sodipodi:role="line"
+         x="87.94928"
+         y="846.24347"
+         id="tspan4551"
+         style="line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle">(phy:0)</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer10"
+     inkscape:label="Label-VM"
+     transform="translate(0,70.866159)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="748.57147"
+       y="340.65237"
+       id="text4596"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4598"
+         x="748.57147"
+         y="340.65237">NIC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="746"
+       y="507.50952"
+       id="text4600"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4602"
+         x="746"
+         y="507.50952">NIC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="742.85712"
+       y="450.36667"
+       id="text4604"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4606"
+         x="742.85712"
+         y="450.36667">VM2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="741.42859"
+       y="284.93811"
+       id="text4608"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4610"
+         x="741.42859"
+         y="284.93811">VM1</tspan></text>
+    <rect
+       style="opacity:1;fill:#ffffaa;fill-opacity:1;stroke:#000000;stroke-width:1.21666873;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4552-1"
+       width="68.783356"
+       height="68.78334"
+       x="689.61139"
+       y="19.712051" />
+    <ellipse
+       style="opacity:1;fill:#ecffe7;fill-opacity:1;stroke:#000000;stroke-width:1.30184615;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4591-7"
+       cx="595.27594"
+       cy="48.979134"
+       rx="43.849094"
+       ry="39.349083" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="704.5625"
+       y="62.336121"
+       id="text4596-0"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4598-6"
+         x="704.5625"
+         y="62.336121">NIC</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="697.41962"
+       y="6.6218543"
+       id="text4608-2"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4610-6"
+         x="697.41962"
+         y="6.6218543">VM3</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Label-Processes"
+     transform="translate(0,70.866159)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="198.94424"
+       y="220.51596"
+       id="text4208"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4210"
+         x="198.94424"
+         y="220.51596">spp_vf</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="848.28571"
+       y="339.50952"
+       id="text4614"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4616"
+         x="848.28571"
+         y="339.50952">App1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="848.28571"
+       y="510.08093"
+       id="text4618"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4620"
+         x="848.28571"
+         y="510.08093">App2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="814.27673"
+       y="61.193268"
+       id="text4614-1"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4616-8"
+         x="814.27673"
+         y="61.193268">Monitor</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="192.66794"
+       y="30.74424"
+       id="text4208-0"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4210-2"
+         x="192.66794"
+         y="30.74424">spp_mirror</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Label-Threads"
+     transform="translate(0,70.866159)"
+     style="display:inline">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="480.6297"
+       y="296.63785"
+       id="text4184"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4186"
+         x="480.6297"
+         y="296.63785">fwd1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="480.6297"
+       y="369.36884"
+       id="text4188"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4190"
+         x="480.6297"
+         y="369.36884">fwd2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="480.6297"
+       y="488.09982"
+       id="text4192"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4194"
+         x="480.6297"
+         y="488.09982">fwd3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="480.6297"
+       y="556.79022"
+       id="text4196"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4198"
+         x="480.6297"
+         y="556.79022">fwd4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="218.98486"
+       y="486.12006"
+       id="text4200"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4202"
+         x="218.98486"
+         y="486.12006">mgr</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="221.86377"
+       y="343.12512"
+       id="text4204"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4206"
+         x="221.86377"
+         y="343.12512">cls</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="254.85202"
+       y="95.397583"
+       id="text4204-2"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4206-9"
+         x="254.85202"
+         y="95.397583">mir</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="480.6297"
+       y="222.54684"
+       id="text4200-2"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4202-7"
+         x="480.6297"
+         y="222.54684">fwd5</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer9"
+     inkscape:label="Label-Resources"
+     transform="translate(0,70.866159)"
+     style="display:inline">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="343.62445"
+       y="478.98001"
+       id="text4561"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4563"
+         x="343.62445"
+         y="478.98001">ring:2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="346.80792"
+       y="362.14172"
+       id="text4565"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4567"
+         x="346.80792"
+         y="362.14172">ring:1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="345.57806"
+       y="553.12506"
+       id="text4569"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4571"
+         x="345.57806"
+         y="553.12506">ring:3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="342.16257"
+       y="290.63779"
+       id="text4573"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4575"
+         x="342.16257"
+         y="290.63779">ring:0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="614.16406"
+       y="296.16635"
+       id="text4577"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4579"
+         x="614.16406"
+         y="296.16635">vhost:0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="612.25977"
+       y="490.18378"
+       id="text4581"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4583"
+         x="612.25977"
+         y="490.18378">vhost:2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="556.15509"
+       y="55.850098"
+       id="text4577-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4579-9"
+         x="556.15509"
+         y="55.850098">vhost:4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="379.0242"
+       y="124.4696"
+       id="text4573-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4575-5"
+         x="379.0242"
+         y="124.4696">ring:5</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="378.73846"
+       y="59.041061"
+       id="text4573-7-3"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4575-5-5"
+         x="378.73846"
+         y="59.041061">ring:4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="617.09735"
+       y="363.30969"
+       id="text4577-6"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4579-7"
+         x="617.09735"
+         y="363.30969">vhost:1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000381px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="614.01495"
+       y="553.59552"
+       id="text4581-3"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4583-5"
+         x="614.01495"
+         y="553.59552">vhost:3</tspan></text>
+  </g>
+</svg>
diff --git a/docs/guides/use_cases/spp_mirror.rst b/docs/guides/use_cases/spp_mirror.rst
index 036f930..dcb8e4d 100644
--- a/docs/guides/use_cases/spp_mirror.rst
+++ b/docs/guides/use_cases/spp_mirror.rst
@@ -22,15 +22,15 @@ Network Configuration
 Detailed configuration is described in
 :numref:`figure_spp_mirror_use_cases_nw_config`.
 In this diagram, incoming packets from ``phy:0`` are mirrored.
-In ``spp_mirror`` process, worker thread ``mir1`` copies incoming packets and
+In ``spp_mirror`` process, worker thread ``mir`` copies incoming packets and
 sends to two destinations ``phy:1`` and ``phy:2``.
 
 .. _figure_spp_mirror_use_cases_nw_config:
 
 .. figure:: ../images/usecases/mirror_dup_nwconf.*
-     :width: 80%
+     :width: 75%
 
-     Network configuration of mirroring
+     Duplicate packets with spp_mirror
 
 
 Setup SPP
@@ -237,13 +237,13 @@ Netowrk Configuration
 
 Detailed configuration of :numref:`figure_usecase_monitor_overview`
 is described in :numref:`figure_usecase_monitor_nwconfig`.
-In this senario, worker thread ``mir1`` copies incoming packets
+In this senario, worker thread ``mir`` copies incoming packets
 from though ``ring:0``.
 Then, sends to orignal destination ``VM1`` and anohter one ``VM3``.
 
 .. _figure_usecase_monitor_nwconfig:
 
-.. figure:: ../images/spp_vf/spp_mirror_usecase_nwconfig.*
+.. figure:: ../images/usecases/mirror_monitor_nwconf.*
      :width: 80%
 
      Network configuration of monitoring packets
@@ -268,12 +268,12 @@ Start components in ``spp_vf``.
 
    # terminal 2
    spp > vf 1; component start cls 2 classifier_mac
-   spp > vf 1; component start mgr1 3 merge
-   spp > vf 1; component start mgr2 4 merge
-   spp > vf 1; component start fwd1 5 forward
-   spp > vf 1; component start fwd2 6 forward
-   spp > vf 1; component start fwd3 7 forward
-   spp > vf 1; component start fwd4 8 forward
+   spp > vf 1; component start mgr 3 merge
+   spp > vf 1; component start fwd1 4 forward
+   spp > vf 1; component start fwd2 5 forward
+   spp > vf 1; component start fwd3 6 forward
+   spp > vf 1; component start fwd4 7 forward
+   spp > vf 1; component start fwd5 8 forward
 
 Add ports for components.
 
@@ -284,6 +284,10 @@ Add ports for components.
    spp > vf 1; port add ring:0 tx cls
    spp > vf 1; port add ring:1 tx cls
 
+   spp > vf 1; port add ring:2 rx mgr
+   spp > vf 1; port add ring:3 rx mgr
+   spp > vf 1; port add phy:0 tx mgr
+
    spp > vf 1; port add ring:5 rx fwd1
    spp > vf 1; port add vhost:0 tx fwd1
 
@@ -296,12 +300,9 @@ Add ports for components.
    spp > vf 1; port add vhost:3 rx fwd4
    spp > vf 1; port add ring:3 tx fwd4
 
-   spp > vf 1; port add ring:2 rx mgr1
-   spp > vf 1; port add ring:3 rx mgr1
-   spp > vf 1; port add phy:0 tx mgr1
+   spp > vf 1; port add ring:4 rx fwd5
+   spp > vf 1; port add vhost:4 tx fwd5
 
-   spp > vf 1; port add ring:4 rx mgr2
-   spp > vf 1; port add vhost:4 tx mgr2
 
 Add classifier table entries.
 
@@ -337,36 +338,37 @@ Run ``spp_mirror``.
 
 .. code-block:: console
 
-   $ sudo ./src/mirror/x86_64-native-linuxapp-gcc/app/spp_mirror \
-     -l 0,9 \
-     -n 4 --proc-type secondary \
-     -- \
-     --client-id 2 \
-     -s 192.168.1.100:6666 \
-     --vhost-client
+    # terminal 6
+    $ sudo ./src/mirror/x86_64-native-linuxapp-gcc/app/spp_mirror \
+      -l 0,9 \
+      -n 4 --proc-type secondary \
+      -- \
+      --client-id 2 \
+      -s 192.168.1.100:6666 \
+      --vhost-client
 
 Start mirror component with lcore ID 9.
 
 .. code-block:: console
 
-    # Start component on lcore 9
-    spp > mirror 2; component start mir1 9 mirror
+    # terminal 2
+    spp > mirror 2; component start mir 9 mirror
 
 Add ``ring:0`` as rx port, ``ring:4`` and ``ring:5`` as tx ports.
 
 .. code-block:: none
 
    # terminal 2
-   spp > mirror 2; port add ring:0 rx mir1
-   spp > mirror 2; port add ring:4 tx mir1
-   spp > mirror 2; port add ring:5 tx mir1
+   spp > mirror 2; port add ring:0 rx mir
+   spp > mirror 2; port add ring:4 tx mir
+   spp > mirror 2; port add ring:5 tx mir
 
 
 Receive Packet on VM3
 ~~~~~~~~~~~~~~~~~~~~~
 
-You can capture incoming packets on VM3.
-If you capture packet on VM1, the same packet would be captured.
+You can capture incoming packets on ``VM3``.
+If you capture packet on ``VM1``, the same packet would be captured.
 
 .. code-block:: console
 
-- 
2.7.4

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

end of thread, other threads:[~2019-02-18 11:50 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-18 11:48 [spp] [PATCH 00/20] Remove SPP VF chapter in docs ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 01/20] docs: move design of SPP VF ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 02/20] docs: divide getting started guide ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 03/20] docs: move libvirt setup to gsg ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 04/20] docs: move virsh setup section ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 05/20] docs: move package installation to gsg ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 06/20] docs: move descs of packet copy mode of spp_mirror ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 07/20] docs: move usecase of spp_vf ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 08/20] docs: update usecase of ssh with spp_vf ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 09/20] docs: update how to use for virsh ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 10/20] docs: update usecase of spp_mirror ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 11/20] docs: revise how to use and usecases ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 12/20] docs: move usecase of spp_pcap ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 13/20] docs: remove SPP VF ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 14/20] docs: move image of ICMP usecase of spp_vf ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 15/20] docs: revise labels of image of spp_vf usecase ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 16/20] docs: fix image of spp_mirror monitoring usecase ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 17/20] docs: move image of design of spp_vf ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 18/20] docs: move images of design of mirror and pcap ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 19/20] docs: move image of overview of spp_pcap ogawa.yasufumi
2019-02-18 11:48 ` [spp] [PATCH 20/20] docs: fix in image of spp_mirror monitor usecase ogawa.yasufumi

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