summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>2019-02-18 20:48:12 +0900
committerYasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>2019-02-19 19:15:45 +0900
commite30391d75ff5cf9da6be1cd193823e52f4e5b56a (patch)
tree2a8126ffa0661888046ab798cdbb790578236009
parent6379dd74ffe82412f16de400d627a304cea8d3bd (diff)
downloadspp-e30391d75ff5cf9da6be1cd193823e52f4e5b56a.zip
spp-e30391d75ff5cf9da6be1cd193823e52f4e5b56a.tar.gz
spp-e30391d75ff5cf9da6be1cd193823e52f4e5b56a.tar.xz
docs: move design of SPP VF
To revise contents of docs, move design of chapter `SPP VF` to `Design`. Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
-rw-r--r--docs/guides/commands/secondary/spp_mirror.rst6
-rw-r--r--docs/guides/commands/secondary/spp_vf.rst4
-rw-r--r--docs/guides/design/spp_secondary.rst159
-rw-r--r--docs/guides/images/spp_vf/spp_mirror_overview.svg1433
-rw-r--r--docs/guides/spp_vf/design.rst140
-rw-r--r--docs/guides/spp_vf/index.rst2
-rw-r--r--docs/guides/spp_vf/overview.rst107
7 files changed, 164 insertions, 1687 deletions
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