* [spp] [PATCH 20/28] doc: fix vm setup procedure for network config
@ 2018-01-23 0:30 ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 21/28] doc: update jansson installation procedure ogawa.yasufumi
` (7 more replies)
0 siblings, 8 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Daiki Yamashita, Naoki Takada
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
Remove unnecessary procedure for checking the configuration with ssh.
Signed-off-by: Daiki Yamashita <yamashita.daiki.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
---
docs/spp_vf/sample_usage.md | 5 -----
1 file changed, 5 deletions(-)
diff --git a/docs/spp_vf/sample_usage.md b/docs/spp_vf/sample_usage.md
index abab4d4..5220184 100644
--- a/docs/spp_vf/sample_usage.md
+++ b/docs/spp_vf/sample_usage.md
@@ -107,11 +107,6 @@ Configurations for spp-vm2 is same as spp-vm1.
$ sudo ethtool -K ens5 tx off
```
-Check the configuration by trying ssh from remote machine that
-connection is accepted but discarded in spp secondary.
-If you do ssh for VM1, you find a messages from spp secondary for
-discarding packets.
-
## Test Application
### Register MAC address to Classifier
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [spp] [PATCH 21/28] doc: update jansson installation procedure
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
@ 2018-01-23 0:30 ` ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 22/28] doc: fix required network configuration ogawa.yasufumi
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Daiki Yamashita, Naoki Takada
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
Update jansson installation procedure so as to use package
rather than to build a branch.
Signed-off-by: Daiki Yamashita <yamashita.daiki.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
---
docs/spp_vf/setup_guide.md | 38 ++------------------------------------
1 file changed, 2 insertions(+), 36 deletions(-)
diff --git a/docs/spp_vf/setup_guide.md b/docs/spp_vf/setup_guide.md
index db87ab8..4684cf3 100644
--- a/docs/spp_vf/setup_guide.md
+++ b/docs/spp_vf/setup_guide.md
@@ -74,44 +74,10 @@ Network configuration is defined in JSON and `spp_vf` reads config from
the file while launching.
[jasson](http://www.digip.org/jansson/) is a JSON library written in C.
-It is required to use `json_path` feature of `jasson` for `spp_vf`.
-It has develped under `json_path` branch and you need to checkout and compile
-it manually.
+Install the -dev package.
```sh
-$ git clone https://github.com/rogerz/jansson
-$ cd jansson
-$ sudo git checkout json_path
-Branch json_path set up to track remote branch json_path from origin. Switched to a new branch 'json_path'
-```
-
-This setup guide expects that `jasson` is placed as `/opt/jasson`.
-
-```sh
-$ sudo mkdir -p /opt/jansson
-$ sudo mv jansson /opt/jansson
-```
-
-Compile it as following.
-
-```sh
-$ cd /opt/jansson/jansson
-$ sudo autoreconf -i
-$ sudo ./configure
-$ sudo make
-$ sudo make install
-$ sudo ldconfig
-```
-
-Then, confirm that header files of jasson are generated in `/usr/local/include`.
-
-```sh
-$ ls -al /usr/local/include
-total 24
-drwxr-xr-x 2 root root 4096 Jul 28 16:45 .
-drwxr-xr-x 10 root root 4096 May 27 10:23 ..
--rw-r--r-- 1 root root 1183 Jul 28 16:45 jansson_config.h
--rw-r--r-- 1 root root 9499 Jul 28 16:45 jansson.h
+$ sudo apt-get install libjansson-dev
```
#### Install DPDK
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [spp] [PATCH 22/28] doc: fix required network configuration
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 21/28] doc: update jansson installation procedure ogawa.yasufumi
@ 2018-01-23 0:30 ` ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 23/28] doc: add how to use vhost-user support ogawa.yasufumi
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Daiki Yamashita, Naoki Takada
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
Remove unnecessary steps, registation to arp table,
in "additional network configurations" section in how_to_use.md.
Signed-off-by: Daiki Yamashita <yamashita.daiki.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
---
docs/spp_vf/how_to_use.md | 6 ------
docs/spp_vf/sample_usage.md | 10 +---------
2 files changed, 1 insertion(+), 15 deletions(-)
diff --git a/docs/spp_vf/how_to_use.md b/docs/spp_vf/how_to_use.md
index e56d5e3..dee4465 100644
--- a/docs/spp_vf/how_to_use.md
+++ b/docs/spp_vf/how_to_use.md
@@ -100,9 +100,6 @@ it is required additional network configurations on host and guest VMss.
# Interface for vhost
$ sudo ifconfig [IF_NAME] inet [IP_ADDR] netmask [NETMASK] up
-# Register host2 to arp table
-$ sudo arp -s [IP_ADDR] [MAC_ADDR] -i [IF_NAME]
-
# Disable offload for vhost interface
$ sudo ethtool -K [IF_NAME] tx off
```
@@ -110,9 +107,6 @@ $ sudo ethtool -K [IF_NAME] tx off
#### Host2
```sh
-# Register VM to arp table
-$ sudo arp -s [IP_ADDR] [MAC_ADDR] -i [IF_NAME]
-
# Disable offload for VM interface
$ ethtool -K [IF_NAME] tx off
```
diff --git a/docs/spp_vf/sample_usage.md b/docs/spp_vf/sample_usage.md
index 5220184..dcc051a 100644
--- a/docs/spp_vf/sample_usage.md
+++ b/docs/spp_vf/sample_usage.md
@@ -71,7 +71,7 @@ set `-oStrictHostKeyChecking=no` option for ssh.
$ ssh -oStrictHostKeyChecking=no sppuser@192.168.122.31
```
-Up interfaces for vhost and register them to arp table inside spp-vm1.
+Up interfaces for vhost inside spp-vm1.
In addition, you have to disable TCP offload function, or ssh is faled
after configuration is done.
@@ -80,10 +80,6 @@ after configuration is done.
$ 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
- # register to arp table
- $ sudo arp -s 192.168.140.11 a0:36:9f:78:86:78 -i ens4
- $ sudo arp -s 192.168.150.13 a0:36:9f:6c:ed:bc -i ens5
-
# diable TCP offload
$ sudo ethtool -K ens4 tx off
$ sudo ethtool -K ens5 tx off
@@ -98,10 +94,6 @@ Configurations for spp-vm2 is same as spp-vm1.
$ 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
- # register to arp table
- $ sudo arp -s 192.168.140.11 a0:36:9f:78:86:78 -i ens4
- $ sudo arp -s 192.168.150.13 a0:36:9f:6c:ed:bc -i ens5
-
# diable TCP offload
$ sudo ethtool -K ens4 tx off
$ sudo ethtool -K ens5 tx off
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [spp] [PATCH 23/28] doc: add how to use vhost-user support
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 21/28] doc: update jansson installation procedure ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 22/28] doc: fix required network configuration ogawa.yasufumi
@ 2018-01-23 0:30 ` ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 24/28] doc: add references to hugepages and isolcpus ogawa.yasufumi
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Kentaro Watanabe, Naoki Takada
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
add description on how to use vhost-user client mode.
* Add information on qemu-kvm version.
* Add and explan optional parameters of spp_vf.
* Update qemu parameter for vhost. (xml set by virsh)
Signed-off-by: Kentaro Watanabe <watanabe.kentaro.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
---
docs/spp_vf/how_to_use.md | 24 ++++++++++++++++++++----
docs/spp_vf/sample_usage.md | 10 ++++++----
docs/spp_vf/setup_guide.md | 10 +++++-----
3 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/docs/spp_vf/how_to_use.md b/docs/spp_vf/how_to_use.md
index dee4465..32c1774 100644
--- a/docs/spp_vf/how_to_use.md
+++ b/docs/spp_vf/how_to_use.md
@@ -9,7 +9,7 @@ SPP_VF is a SR-IOV like network functionality for NFV.
## Environment
* Ubuntu 16.04
-* qemu-kvm
+* qemu-kvm 2.7 or later
* DPDK v17.05 or later
## Launch SPP
@@ -56,7 +56,10 @@ In `spp_vf`, spp secondary processes are launched by single command.
Option of dpdk are refer to [dpdk documentation](http://dpdk.org/doc/guides/linux_gsg/build_sample_apps.html#running-a-sample-application).
Options of `spp_vf` are
- * TODO
+ * --client-id : client id
+ * --config : config file path
+ * -s : Port for ip addr and spp secondary
+ * --vhost-client : vhost-user client enable setting
Core assingment and network configuration are defined
in JSON formatted config file.
@@ -65,7 +68,19 @@ config file (test/spp_config/spp_config/vf.json).
```sh
$ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
--c 0x3ffd -n 4 --proc-type=secondary
+-c 0x3ffd -n 4 --proc-type=secondary \
+-- --client-id 1 -s 127.0.0.1:6666 --vhost-client
+```
+
+`--vhost-client` option is used when SPP is a client of vhost-user.
+By choosing not to use `--vhost-client` option,
+It may be possible to use SPP even in qemu (before 2.7 version)
+which can not be used as a vhost-user server.
+
+```sh
+$ 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
```
You can also indicate which of config you use explicitly with
@@ -78,7 +93,8 @@ defined in each of config files.
```sh
$ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-c 0x3ffd -n 4 --proc-type=secondary \
--- --config /path/to/config/spp_vf1.json
+-- --client-id 1 --config /path/to/config/spp_vf1.json \
+-s 127.0.0.1:6666 --vhost-client
```
### SPP VM
diff --git a/docs/spp_vf/sample_usage.md b/docs/spp_vf/sample_usage.md
index dcc051a..47abbec 100644
--- a/docs/spp_vf/sample_usage.md
+++ b/docs/spp_vf/sample_usage.md
@@ -41,17 +41,19 @@ launch secondary process after launch primary process.
$ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-c 0x00fd -n 4 --proc-type=secondary \
-- \
- --process-id 1 \
+ --client-id 1 \
--config /path/to/spp_vf1_without_cmtab.json \
- -s 127.0.0.1:11111
+ -s 127.0.0.1:11111 \
+ --vhost-client
# start secondary 2
$ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-c 0x3f01 -n 4 --proc-type=secondary \
-- \
- --process-id 2 \
+ --client-id 2 \
--config /path/to/spp_vf2_without_cmtab.json \
- -s 127.0.0.1:11112
+ -s 127.0.0.1:11112 \
+ --vhost-client
```
### Setup network configuration for VMs
diff --git a/docs/spp_vf/setup_guide.md b/docs/spp_vf/setup_guide.md
index 4684cf3..f24e43e 100644
--- a/docs/spp_vf/setup_guide.md
+++ b/docs/spp_vf/setup_guide.md
@@ -3,7 +3,7 @@
## Environment
* Ubuntu 16.04
-* qemu-kvm
+* qemu-kvm 2.7 or later
* DPDK v17.05 or later
## Setting
@@ -205,15 +205,15 @@ $ virsh edit [VM_NAME]
<qemu:arg value='node,memdev=mem'/>
<qemu:arg value='-mem-prealloc'/>
<qemu:arg value='-chardev'/>
- <qemu:arg value='socket,id=chr0,path=/tmp/sock0'/>
+ <qemu:arg value='socket,id=chr0,path=/tmp/sock0,server'/>
<qemu:arg value='-device'/>
- <qemu:arg value='virtio-net-pci,netdev=vhost-net0'/>
+ <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'/>
+ <qemu:arg value='socket,id=chr1,path=/tmp/sock1,server'/>
<qemu:arg value='-device'/>
- <qemu:arg value='virtio-net-pci,netdev=vhost-net1'/>
+ <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>
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [spp] [PATCH 24/28] doc: add references to hugepages and isolcpus
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
` (2 preceding siblings ...)
2018-01-23 0:30 ` [spp] [PATCH 23/28] doc: add how to use vhost-user support ogawa.yasufumi
@ 2018-01-23 0:30 ` ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 25/28] doc: remove description on classifier_table ogawa.yasufumi
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Daiki Yamashita, Naoki Takada
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
Add references to hugepages and isolcpus as additional information
in setting grub config.
Signed-off-by: Daiki Yamashita <yamashita.daiki.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
---
docs/spp_vf/setup_guide.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/docs/spp_vf/setup_guide.md b/docs/spp_vf/setup_guide.md
index f24e43e..af2e9bf 100644
--- a/docs/spp_vf/setup_guide.md
+++ b/docs/spp_vf/setup_guide.md
@@ -37,6 +37,11 @@ Change grub config for hugepages and isolcpus.
GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=2,4,6,8,10,12-18,20,22,24,26-42,44,46 hugepagesz=1G hugepages=36 default_hugepagesz=1G"
```
+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.
```sh
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [spp] [PATCH 25/28] doc: remove description on classifier_table
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
` (3 preceding siblings ...)
2018-01-23 0:30 ` [spp] [PATCH 24/28] doc: add references to hugepages and isolcpus ogawa.yasufumi
@ 2018-01-23 0:30 ` ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 26/28] doc: fix typos and erros in texts ogawa.yasufumi
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Kentaro Watanabe, Naoki Takada
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
Since classifire_table is being configured with commands and removed
from configuration file, description on classifier_table is removed.
Signed-off-by: Kentaro Watanabe <watanabe.kentaro.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
---
docs/spp_vf/config_manual.md | 39 ++++-----------------------------------
1 file changed, 4 insertions(+), 35 deletions(-)
diff --git a/docs/spp_vf/config_manual.md b/docs/spp_vf/config_manual.md
index f049407..05a342c 100644
--- a/docs/spp_vf/config_manual.md
+++ b/docs/spp_vf/config_manual.md
@@ -27,10 +27,7 @@ For example, resource ID of physical NIC of ID 0 is described as `phy:0`.
## Config Format
Config files is described in JSON format.
-It consists of `vfs` and `classifier_table`.
-`vfs` defines each of spp_vf attributes and
-`classifier_table` defines MAC address and correnpond port for
-determining destination.
+Config file consists of `vfs` and defines the spp_vf attribute.
### Attributes in Config
@@ -42,14 +39,7 @@ determining destination.
* core: Core ID forwarder running on.
* type: Forwarder type (`forward`, `classifier_mac`, or `merger`).
* rx_port: Resource ID(s) of rx port.
- * tx_port: Resource ID of tx port. If 1:N, which means the dest is `classifier_mac`,
- directly described as `classifier_mac_table`.
-
- * classifier_table
- * name: Table name for classifier_mac, It MUST be "classifier_mac_table" in current implementation
- * table: Set of MAC address and port for destination
- * mac: MAC address
- * port: Resource ID of port
+ * tx_port: Resource ID(s) of tx port.
## Sample Config
@@ -73,7 +63,7 @@ Here is default config `spp.json` and network diagram of it.
"core": 3,
"type": "classifier_mac",
"rx_port": "ring:8", // Rx port, It is not a list because type is classifier_mac
- "tx_port_table": "classifier_mac_table" // If type is classifier_mac, tx is classifier_mac_table
+ "tx_port": ["ring:0", "ring:1", "ring:4", "ring:5"]
},
{
@@ -139,28 +129,7 @@ Here is default config `spp.json` and network diagram of it.
}
]
}
- ],
- "classifier_table": {
- "name":"classifier_mac_table",
- "table": [
- {
- "mac":"52:54:00:12:34:56",
- "port":"ring:0"
- },
- {
- "mac":"52:54:00:12:34:57",
- "port":"ring:4"
- },
- {
- "mac":"52:54:00:12:34:58",
- "port":"ring:1"
- },
- {
- "mac":"52:54:00:12:34:59",
- "port":"ring:5"
- }
- ]
- }
+ ]
}
```
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [spp] [PATCH 26/28] doc: fix typos and erros in texts
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
` (4 preceding siblings ...)
2018-01-23 0:30 ` [spp] [PATCH 25/28] doc: remove description on classifier_table ogawa.yasufumi
@ 2018-01-23 0:30 ` ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 27/28] doc: update sample config section ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 28/28] doc: align figure title position ogawa.yasufumi
7 siblings, 0 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Daiki Yamashita, Naoki Takada, Yasufumi Ogawa
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
* config_manual.md: correct explanation of 'name' attribute.
* how_to_use.md: correct default config file path.
* how_to_use.md: correct titles.
* correct typos.
Signed-off-by: Daiki Yamashita <yamashita.daiki.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
docs/spp_vf/config_manual.md | 2 +-
docs/spp_vf/how_to_use.md | 8 ++++----
docs/spp_vf/setup_guide.md | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/spp_vf/config_manual.md b/docs/spp_vf/config_manual.md
index 05a342c..cdf10b5 100644
--- a/docs/spp_vf/config_manual.md
+++ b/docs/spp_vf/config_manual.md
@@ -32,7 +32,7 @@ Config file consists of `vfs` and defines the spp_vf attribute.
### Attributes in Config
* vfs
- * name: Name of spp_vf component.
+ * name: Name of the configuration. Please set user as desired.
* num_vhost: Number of vhosts spp_vf use.
* num_ring: Number of rings spp_vf use.
* functions: List of forwarders and its attributes (function means a forwarder).
diff --git a/docs/spp_vf/how_to_use.md b/docs/spp_vf/how_to_use.md
index 32c1774..3d3e85a 100644
--- a/docs/spp_vf/how_to_use.md
+++ b/docs/spp_vf/how_to_use.md
@@ -64,7 +64,7 @@ Options of `spp_vf` are
Core assingment and network configuration are defined
in JSON formatted config file.
If you run `spp_vf` without giving config file, it refers default
-config file (test/spp_config/spp_config/vf.json).
+config file (/usr/local/etc/spp/spp.json).
```sh
$ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
@@ -97,7 +97,7 @@ $ sudo ./src/vf/x86_64-native-linuxapp-gcc/spp_vf \
-s 127.0.0.1:6666 --vhost-client
```
-### SPP VM
+### VM
Launch VMs with `virsh` command.
@@ -108,9 +108,9 @@ $ virsh start [VM]
### Additional Network Configurations
To enable processes running on the VM to communicate through spp,
-it is required additional network configurations on host and guest VMss.
+it is required additional network configurations on host and guest VMs.
-#### Host1
+#### Guest VMs
```sh
# Interface for vhost
diff --git a/docs/spp_vf/setup_guide.md b/docs/spp_vf/setup_guide.md
index af2e9bf..a20ae90 100644
--- a/docs/spp_vf/setup_guide.md
+++ b/docs/spp_vf/setup_guide.md
@@ -73,7 +73,7 @@ Finally, you unmount default hugepage.
$ sudo unmount /dev/hugepages
```
-#### Install jasson
+#### Install jansson
Network configuration is defined in JSON and `spp_vf` reads config from
the file while launching.
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [spp] [PATCH 27/28] doc: update sample config section
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
` (5 preceding siblings ...)
2018-01-23 0:30 ` [spp] [PATCH 26/28] doc: fix typos and erros in texts ogawa.yasufumi
@ 2018-01-23 0:30 ` ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 28/28] doc: align figure title position ogawa.yasufumi
7 siblings, 0 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Kentaro Watanabe, Naoki Takada, Yasufumi Ogawa
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
Update "Sample Config" section in config_manual.md
according to the latest config version format.
Some errors are corrected.
* Replace network diagram ascii art to the link to
spp_sample_config.svg.
* Change config example to the one aligned to the network diagram.
* Remove comments in config example since no comment is allowed
in config file.
Signed-off-by: Kentaro Watanabe <watanabe.kentaro.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
docs/spp_vf/config_manual.md | 110 +--
docs/spp_vf/spp_sample_config.svg | 1891 +++++++++++++++++++++++++++++++++++++
2 files changed, 1904 insertions(+), 97 deletions(-)
create mode 100644 docs/spp_vf/spp_sample_config.svg
diff --git a/docs/spp_vf/config_manual.md b/docs/spp_vf/config_manual.md
index cdf10b5..49f9701 100644
--- a/docs/spp_vf/config_manual.md
+++ b/docs/spp_vf/config_manual.md
@@ -50,22 +50,21 @@ Here is default config `spp.json` and network diagram of it.
"vfs": [
{
"name": "vf0",
- "num_vhost": 4, // Number of vhosts
- "num_ring": 9, // Number of rings
- "functions":[ // Attributes of forward,merge or classifier_mac
+ "num_vhost": 2,
+ "num_ring": 4,
+ "functions":[
{
- "core": 2, // Core ID
- "type": "merge", // Forwarder type
- "rx_port": ["phy:0", "phy:1"], // Rx port, It MUST be a list for merge type
- "tx_port": "ring:8" // Tx port
+ "core": 2,
+ "type": "classifier_mac",
+ "rx_port": "phy:0",
+ "tx_port": ["ring:0", "ring:1"]
},
{
"core": 3,
- "type": "classifier_mac",
- "rx_port": "ring:8", // Rx port, It is not a list because type is classifier_mac
- "tx_port": ["ring:0", "ring:1", "ring:4", "ring:5"]
+ "type": "merge",
+ "rx_port": ["ring:2", "ring:3"],
+ "tx_port": "phy:0"
},
-
{
"core": 4,
"type": "forward",
@@ -76,7 +75,7 @@ Here is default config `spp.json` and network diagram of it.
"core": 5,
"type": "forward",
"rx_port": "ring:1",
- "tx_port": "vhost:2"
+ "tx_port": "vhost:1"
},
{
"core": 6,
@@ -87,45 +86,8 @@ Here is default config `spp.json` and network diagram of it.
{
"core": 7,
"type": "forward",
- "rx_port": "vhost:2",
- "tx_port": "ring:3"
- },
- {
- "core": 8,
- "type": "merge",
- "rx_port": ["ring:2", "ring:3"],
- "tx_port": "phy:0"
- },
-
- {
- "core": 9,
- "type": "forward",
- "rx_port": "ring:4",
- "tx_port": "vhost:1"
- },
- {
- "core": 10,
- "type": "forward",
- "rx_port": "ring:5",
- "tx_port": "vhost:3"
- },
- {
- "core": 11,
- "type": "forward",
"rx_port": "vhost:1",
- "tx_port": "ring:6"
- },
- {
- "core": 12,
- "type": "forward",
- "rx_port": "vhost:3",
- "tx_port": "ring:7"
- },
- {
- "core": 13,
- "type": "merge",
- "rx_port": ["ring:6", "ring:7"],
- "tx_port": "phy:1"
+ "tx_port": "ring:3"
}
]
}
@@ -134,50 +96,4 @@ Here is default config `spp.json` and network diagram of it.
```
Network diagram
-[TODO] Replace it to more readable SVG img.
-
-```
-+---------+ +-----------------------------------------------------------------------------------------------+
-| host2 | | Host1 |
-| | | +------------------------------------------------------+ +-------------------+ |
-| | | | spp_vf | | | |
-| +-----+ | | +--------+ | +---+ +----+ +---+ +----+ +---+ +----------+ | | +----------+ | |
-| | nic <------> nic0 +-----> M +--> r8 +--> C +-----> r0 +--> F +--> +------> | | |
-| +-----+ | | +----+---+ | +-^-+ +----+ +-+-+ +----+ +---+ | | | | | | | |
-| | | ^ | | | | vhost0 | | | | nic | | |
-| | | | | | | +----+ +---+ | | | | | | | |
-| | | | | | +--------------+ r2 <--+ F <--+ <------+ | | |
-| | | | | | | | +----+ +---+ +----------+ | | +----------+ | |
-| | | | | | | | | | spp vm| |
-| | | | | | | | +----+ +---+ +----------+ | | +----------+ | |
-| | | | | | | +-------> r4 +--+ F +--> +------> | | |
-| | | | | | +--v--+ | +----+ +---+ | | | | | | | |
-| | | +----------------+ M | | | vhost1 | | | | nic | | |
-| | | | | +--^--+ | +----+ +---+ | | | | | | | |
-| | | | | | +------------+ r6 +--+ F <--+ <------+ | | |
-| | | | | | | | +----+ +---+ +----------+ | | +----------+ | |
-| | | | | | | | | | | |
-| | | | | | | | | +-------------------+ |
-| | | | | | | | | |
-| | | | | | | | | +-------------------+ |
-| | | | | | | | | | | |
-| +-----+ | | +--------+ | | | | | +----+ +---+ +----------+ | | +----------+ | |
-| | nic <------> nic1 +-------+ | | +-------> r1 +--+ F +--> +------> | | |
-| +-----+ | | +----+---+ | | | | +----+ +---+ | | | | | | | |
-| | | ^ | | | | | vhost2 | | | | nic | | |
-| | | | | | | | +----+ +---+ | | | | | | | |
-| | | | | +--------------+ r3 +--+ F <--+ <------+ | | |
-| | | | | | | +----+ +---+ +----------+ | | +----------+ | |
-| | | | | | | | | spp vm| |
-| | | | | | | +----+ +---+ +----------+ | | +----------+ | |
-| | | | | | +-------> r5 +--+ F +--> +------> | | |
-| | | | | +----v+ +----+ +---+ | | | | | | | |
-| | | +----------------+ M | | vhost3 | | | | nic | | |
-| | | | +--^--+ +----+ +---+ | | | | | | | |
-| | | | +--------------+ r7 +--+ F <--+ <------+ | | |
-| | | | +----+ +---+ +----------+ | | +----------+ | |
-| | | | | | | |
-| | | +------------------------------------------------------+ +-------------------+ |
-| | | |
-+---------+ +-----------------------------------------------------------------------------------------------+
-```
+![spp_sample_config](spp_sample_config.svg)
diff --git a/docs/spp_vf/spp_sample_config.svg b/docs/spp_vf/spp_sample_config.svg
new file mode 100644
index 0000000..25c19f2
--- /dev/null
+++ b/docs/spp_vf/spp_sample_config.svg
@@ -0,0 +1,1891 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="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="249.46321"
+ 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:#fff6d5;fill-opacity:0.99215686;stroke:#000000;stroke-width:0.28222221;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4841"
+ cx="-4.5242934"
+ cy="120.45459"
+ rx="15.822355"
+ ry="9.692975" />
+ <image
+ y="117.62377"
+ x="-14.406374"
+ id="image4861"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEMAAAAOCAYAAAB0DKHBAAAABHNCSVQICAgIfAhkiAAABRhJREFU
+SIndVl9Ik10cfvy9b2PT2bSstcKaZZBlhcVEDa0RExmDLrzoJqwLCzICL9IRFoxRWAmh0bwQiSDp
+D0GJEUgXpRMFL0ILqdxFBSKCmwUOnRXb812E79fb3KdfIHx8D5yL8zzP+Z3f+fH+znnBVYLP52NP
+T89qhf8jiAhra2tTyXOCVYLf70dPT89qhV8VrFox/kuYn59fkU8URcHp06fx8uVLlJSUICMjA7m5
+ufD7/SCpM0ejUXi9XuzYsQNGoxF2ux1erxcLCws6n6IoAIA7d+5AURTduH//vuaLRCJQVRWZmZn4
+8eOHxt+4cQOqquLLly8aNzk5iVOnTsFms8FkMqGwsBBtbW1JOS6e59mzZ3A4HEhPT0dLS0vKAty7
+dw8GgwFnz541QERYVFREq9XKS5cusb29nU6nkyLCu3fvag0Vi8VYXFzM7OxsNjY2sqOjg3V1dTQY
+DPR4PLrm6+rqoojQ6XSyq6tLG1arlWfOnNF8T548oaqqFBEODQ1pvNvt5r59+7R5JBKh3W5neno6
+GxoaePv2bVZWVlJEWF9fn3QvFBYWct26dWxqamJHRwd7e3uXvDMCgQAVRaHX6yXJOYgI16xZw9HR
+Uc307ds3btmyhSUlJRrX3NxMk8nEt2/f6jZvb2+niPDVq1fLXlbV1dXctWuXNq+vr2dZWRnz8vJ4
+7do1kmQ8HmdWVhbPnTun+RobGykifP78ucYlEgkeO3aMiqLww4cPun1FhMPDw/wdv+bU3NxMEeHV
+q1cX5Z/FcDqdSQurq6uZk5OjzYuKiuh0OhkOh3UjFApRRHj58uVli9HW1kYR4dTUFEny4MGD9Hq9
+rKmpodvtJkm+fv2aIsJHjx5p6woKCrh3796kHAcHBykivHnzpm7f0tLSJO+vOV28eJGKovDWrVu/
+ynMqANjt9qReys7O1vVsKBRCLBaD1Wpdsvemp6dT9uUiysvLAQDBYBBVVVV48+YN/H4/pqamcOHC
+BcTjcQwMDOi8APD582d4PJ6keLt37wYAfPr0Scdv3749ZQ6PHz9GNBrFlStXcP78eZ2mAn9feP+E
+RCKBw4cPo6mpaUl98+bNy8bYv38/LBYL+vv7kZmZCQA4dOgQpqenMTs7i9HRUQSDQeTn58Nmsy0b
+LxVMJlNKrbi4GOPj4+js7MSJEyeQm5uraepKN8jPz8fs7CyOHj36x0mKCMrKyhAMBrF27VqtOBaL
+BTabDf39/RgcHEz6CvLy8jA+Pp4U7/3795q+Umzbtg2BQABHjhyBy+VCX18fNm3a9DO/lQY5fvw4
+RkZG0N3dnaQtLCwgGo3qOLPZrGuzRVRUVODdu3fo7u5GRUWFxpeXl6OzsxPhcFjHA4DH48HY2Bh6
+e3s1jiRaWlqQlpYGt9u90mMAAHbu3IkXL17g69evcLlciEQiP4VUv6i1tbUUEW0ei8VYWlpKVVV5
+8uRJBgIBtra2sq6ujhs2bGBfX59uvcvlotls5vXr1/ngwQM+fPiQJDk0NKTd+E+fPtX8i6+SiPDj
+x4+6WItPa0ZGBhsaGhgIBFhVVZXyaU31y/27NjIywvXr1/PAgQOcmZmZX3ExSHJubo4+n48FBQU0
+Go3Mycmhw+Ggz+fjzMyMzhsKhVhZWUmLxaIdkiS/f/9Os9lMRVEYDoc1/9jYGEWEW7duXfIgExMT
+rKmp4caNG2k0Grlnzx62trYykUj8cTFIcnh4mFlZWXQ4HPE0kpZ/9Y39f8G/AAecg8zYxSDkAAAA
+AElFTkSuQmCC
+"
+ style="fill:#000000;fill-opacity:1;image-rendering:optimizeSpeed"
+ preserveAspectRatio="none"
+ height="3.9511111"
+ width="18.90889" />
+ </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>
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [spp] [PATCH 28/28] doc: align figure title position
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
` (6 preceding siblings ...)
2018-01-23 0:30 ` [spp] [PATCH 27/28] doc: update sample config section ogawa.yasufumi
@ 2018-01-23 0:30 ` ogawa.yasufumi
7 siblings, 0 replies; 9+ messages in thread
From: ogawa.yasufumi @ 2018-01-23 0:30 UTC (permalink / raw)
To: spp, ferruh.yigit, x-fn-spp
Cc: Hiroyuki Nakamura, Kentaro Watanabe, Naoki Takada
From: Hiroyuki Nakamura <nakamura.hioryuki@po.ntt-tx.co.jp>
Align the position of figure title "Network diagram"
Signed-off-by: Kentaro Watanabe <watanabe.kentaro.z01@as.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki@lab.ntt.co.jp>
---
docs/spp_vf/config_manual.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/spp_vf/config_manual.md b/docs/spp_vf/config_manual.md
index 49f9701..656bd88 100644
--- a/docs/spp_vf/config_manual.md
+++ b/docs/spp_vf/config_manual.md
@@ -96,4 +96,5 @@ Here is default config `spp.json` and network diagram of it.
```
Network diagram
+
![spp_sample_config](spp_sample_config.svg)
--
2.13.1
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-01-23 0:30 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-23 0:30 [spp] [PATCH 20/28] doc: fix vm setup procedure for network config ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 21/28] doc: update jansson installation procedure ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 22/28] doc: fix required network configuration ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 23/28] doc: add how to use vhost-user support ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 24/28] doc: add references to hugepages and isolcpus ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 25/28] doc: remove description on classifier_table ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 26/28] doc: fix typos and erros in texts ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 27/28] doc: update sample config section ogawa.yasufumi
2018-01-23 0:30 ` [spp] [PATCH 28/28] doc: align figure title position 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).