diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
commit | e6918187568dbd01842d8d1d2c808ce16a894239 (patch) | |
tree | 64f88b554b444a49f656b6c656111a145cbbaa28 /src/spdk/dpdk/doc/guides/platform | |
parent | Initial commit. (diff) | |
download | ceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip |
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/spdk/dpdk/doc/guides/platform')
-rw-r--r-- | src/spdk/dpdk/doc/guides/platform/bluefield.rst | 143 | ||||
-rw-r--r-- | src/spdk/dpdk/doc/guides/platform/dpaa.rst | 103 | ||||
-rw-r--r-- | src/spdk/dpdk/doc/guides/platform/dpaa2.rst | 113 | ||||
-rw-r--r-- | src/spdk/dpdk/doc/guides/platform/img/octeontx2_packet_flow_hw_accelerators.svg | 2804 | ||||
-rw-r--r-- | src/spdk/dpdk/doc/guides/platform/img/octeontx2_resource_virtualization.svg | 2418 | ||||
-rw-r--r-- | src/spdk/dpdk/doc/guides/platform/index.rst | 17 | ||||
-rw-r--r-- | src/spdk/dpdk/doc/guides/platform/octeontx.rst | 161 | ||||
-rw-r--r-- | src/spdk/dpdk/doc/guides/platform/octeontx2.rst | 552 |
8 files changed, 6311 insertions, 0 deletions
diff --git a/src/spdk/dpdk/doc/guides/platform/bluefield.rst b/src/spdk/dpdk/doc/guides/platform/bluefield.rst new file mode 100644 index 000000000..deda675b7 --- /dev/null +++ b/src/spdk/dpdk/doc/guides/platform/bluefield.rst @@ -0,0 +1,143 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2019 Mellanox Technologies, Ltd + +Mellanox BlueField Board Support Package +======================================== + +This document has information about steps to setup Mellanox BlueField platform +and common offload HW drivers of **Mellanox BlueField** family SoC. + + +Supported BlueField family SoCs +------------------------------- + +- `BlueField <http://www.mellanox.com/page/products_dyn?product_family=256&mtag=soc_overview>`_ + + +Supported BlueField Platforms +----------------------------- + +- `BlueField SmartNIC <http://www.mellanox.com/page/products_dyn?product_family=275&mtag=bluefield_smart_nic>`_ +- `BlueField Reference Platforms <http://www.mellanox.com/page/products_dyn?product_family=286&mtag=bluefield_platforms>`_ +- `BlueField Controller Card <http://www.mellanox.com/page/products_dyn?product_family=288&mtag=bluefield_controller_card>`_ + + +Common Offload HW Drivers +------------------------- + +1. **NIC Driver** + + See :doc:`../nics/mlx5` for Mellanox mlx5 NIC driver information. + +2. **Cryptodev Driver** + + This is based on the crypto extension support of armv8. See + :doc:`../cryptodevs/armv8` for armv8 crypto driver information. + +.. note:: + + BlueField has a variant having no armv8 crypto extension support. + + +Steps To Setup Platform +----------------------- + +Toolchains, OS and drivers can be downloaded and installed individually from the +Web. But it is recommended to follow instructions at +`Mellanox BlueField Software Website +<http://www.mellanox.com/page/products_dyn?product_family=279&mtag=bluefield_software>`_. + + +Compile DPDK +------------ + +DPDK can be compiled either natively on BlueField platforms or cross-compiled on +an x86 based platform. + +Native Compilation +~~~~~~~~~~~~~~~~~~ + +Refer to :doc:`../nics/mlx5` for prerequisites. Either Mellanox OFED/EN or +rdma-core library with corresponding kernel drivers is required. + +make build +^^^^^^^^^^ + +.. code-block:: console + + make config T=arm64-bluefield-linux-gcc + make -j + +meson build +^^^^^^^^^^^ + +.. code-block:: console + + meson build + ninja -C build + +Cross Compilation +~~~~~~~~~~~~~~~~~ + +Refer to :doc:`../linux_gsg/cross_build_dpdk_for_arm64` to install the cross +toolchain for ARM64. Base on that, additional header files and libraries are +required: + + - libibverbs + - libmlx5 + - libnl-3 + - libnl-route-3 + +Such header files and libraries can be cross-compiled and installed on to the +cross toolchain directory like depicted in +:ref:`arm_cross_build_getting_the_prerequisite_library`, but those can also be +simply copied from the filesystem of a working BlueField platform. The following +script can be run on a BlueField platform in order to create a supplementary +tarball for the cross toolchain. + +.. code-block:: console + + mkdir -p aarch64-linux-gnu/libc + pushd $PWD + cd aarch64-linux-gnu/libc + + # Copy libraries + mkdir -p lib64 + cp -a /lib64/libibverbs* lib64/ + cp -a /lib64/libmlx5* lib64/ + cp -a /lib64/libnl-3* lib64/ + cp -a /lib64/libnl-route-3* lib64/ + + # Copy header files + mkdir -p usr/include/infiniband + cp -a /usr/include/infiniband/ib_user_ioctl_verbs.h usr/include/infiniband/ + cp -a /usr/include/infiniband/mlx5*.h usr/include/infiniband/ + cp -a /usr/include/infiniband/tm_types.h usr/include/infiniband/ + cp -a /usr/include/infiniband/verbs*.h usr/include/infiniband/ + + # Create supplementary tarball + popd + tar cf aarch64-linux-gnu-mlx.tar aarch64-linux-gnu/ + +Then, untar the tarball at the cross toolchain directory on the x86 host. + +.. code-block:: console + + cd $(dirname $(which aarch64-linux-gnu-gcc))/.. + tar xf aarch64-linux-gnu-mlx.tar + +make build +^^^^^^^^^^ + +.. code-block:: console + + make config T=arm64-bluefield-linux-gcc + make -j CROSS=aarch64-linux-gnu- CONFIG_RTE_KNI_KMOD=n CONFIG_RTE_EAL_IGB_UIO=n + +meson build +^^^^^^^^^^^ + +.. code-block:: console + + meson build --cross-file config/arm/arm64_bluefield_linux_gcc + ninja -C build diff --git a/src/spdk/dpdk/doc/guides/platform/dpaa.rst b/src/spdk/dpdk/doc/guides/platform/dpaa.rst new file mode 100644 index 000000000..6005f2221 --- /dev/null +++ b/src/spdk/dpdk/doc/guides/platform/dpaa.rst @@ -0,0 +1,103 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2018 NXP + +NXP QorIQ DPAA Board Support Package +==================================== + +This doc has information about steps to setup QorIQ dpaa +based layerscape platform and information about common offload +hw block drivers of **NXP QorIQ DPAA** SoC family. + +Supported DPAA SoCs +-------------------- + +* LS1046A/LS1026A +* LS1043A/LS1023A + +More information about SoC can be found at `NXP Official Website +<https://www.nxp.com/products/processors-and-microcontrollers/arm-based- +processors-and-mcus/qoriq-layerscape-arm-processors:QORIQ-ARM>`_. + + +Common Offload HW Block Drivers +------------------------------- + +1. **Nics Driver** + + See :doc:`../nics/dpaa` for NXP dpaa nic driver information. + +2. **Cryptodev Driver** + + See :doc:`../cryptodevs/dpaa_sec` for NXP dpaa cryptodev driver information. + +3. **Eventdev Driver** + + See :doc:`../eventdevs/dpaa` for NXP dpaa eventdev driver information. + + +Steps To Setup Platform +----------------------- + +There are four main pre-requisites for executing DPAA PMD on a DPAA +compatible board: + +1. **ARM 64 Tool Chain** + + For example, the `*aarch64* Linaro Toolchain <https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-i686_aarch64-linux-gnu.tar.xz>`_. + +2. **Linux Kernel** + + It can be obtained from `NXP's Github hosting <https://source.codeaurora.org/external/qoriq/qoriq-components/linux>`_. + +3. **Rootfile system** + + Any *aarch64* supporting filesystem can be used. For example, + Ubuntu 16.04 LTS (Xenial) or 18.04 (Bionic) userland which can be obtained + from `here + <http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.1-base-arm64.tar.gz>`_. + +4. **FMC Tool** + + Before any DPDK application can be executed, the Frame Manager Configuration + Tool (FMC) need to be executed to set the configurations of the queues. This + includes the queue state, RSS and other policies. + This tool can be obtained from `NXP (Freescale) Public Git Repository <https://source.codeaurora.org/external/qoriq/qoriq-components/fmc>`_. + + This tool needs configuration files which are available in the + :ref:`DPDK Extra Scripts <extra_scripts>`, described below for DPDK usages. + +As an alternative method, DPAA PMD can also be executed using images provided +as part of SDK from NXP. The SDK includes all the above prerequisites necessary +to bring up a DPAA board. + +The following dependencies are not part of DPDK and must be installed +separately: + +- **NXP Linux SDK** + + NXP Linux software development kit (SDK) includes support for family + of QorIQ® ARM-Architecture-based system on chip (SoC) processors + and corresponding boards. + + It includes the Linux board support packages (BSPs) for NXP SoCs, + a fully operational tool chain, kernel and board specific modules. + + SDK and related information can be obtained from: `NXP QorIQ SDK <http://www.nxp.com/products/software-and-tools/run-time-software/linux-sdk/linux-sdk-for-qoriq-processors:SDKLINUX>`_. + + +.. _extra_scripts: + +- **DPDK Extra Scripts** + + DPAA based resources can be configured easily with the help of ready scripts + as provided in the DPDK Extra repository. + + `DPDK Extras Scripts <https://source.codeaurora.org/external/qoriq/qoriq-components/dpdk-extras>`_. + +Currently supported by DPDK: + +- NXP SDK **2.0+** (preferred: LSDK 18.09). +- Supported architectures: **arm64 LE**. + +- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` + to setup the basic DPDK environment. diff --git a/src/spdk/dpdk/doc/guides/platform/dpaa2.rst b/src/spdk/dpdk/doc/guides/platform/dpaa2.rst new file mode 100644 index 000000000..f1526bd30 --- /dev/null +++ b/src/spdk/dpdk/doc/guides/platform/dpaa2.rst @@ -0,0 +1,113 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2018 NXP + +NXP QorIQ DPAA2 Board Support Package +===================================== + +This doc has information about steps to setup NXP QorIQ DPAA2 platform +and information about common offload hw block drivers of +**NXP QorIQ DPAA2** SoC family. + +Supported DPAA2 SoCs +-------------------- + +- LX2160A +- LS2084A/LS2044A +- LS2088A/LS2048A +- LS1088A/LS1048A + +More information about SoC can be found at `NXP Official Website +<https://www.nxp.com/products/processors-and-microcontrollers/arm-based- +processors-and-mcus/qoriq-layerscape-arm-processors:QORIQ-ARM>`_. + + +Common Offload HW Block Drivers +------------------------------- + +1. **Nics Driver** + + See :doc:`../nics/dpaa2` for NXP dpaa2 nic driver information. + +2. **Cryptodev Driver** + + See :doc:`../cryptodevs/dpaa2_sec` for NXP dpaa2 cryptodev driver information. + +3. **Eventdev Driver** + + See :doc:`../eventdevs/dpaa2` for NXP dpaa2 eventdev driver information. + +4. **Rawdev AIOP CMDIF Driver** + + See :doc:`../rawdevs/dpaa2_cmdif` for NXP dpaa2 AIOP command interface driver information. + +5. **Rawdev QDMA Driver** + + See :doc:`../rawdevs/dpaa2_qdma` for NXP dpaa2 QDMA driver information. + + +Steps To Setup Platform +----------------------- + +There are four main pre-requisites for executing DPAA2 PMD on a DPAA2 +compatible board: + +1. **ARM 64 Tool Chain** + + For example, the `*aarch64* Linaro Toolchain <https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-i686_aarch64-linux-gnu.tar.xz>`_. + +2. **Linux Kernel** + + It can be obtained from `NXP's Github hosting <https://source.codeaurora.org/external/qoriq/qoriq-components/linux>`_. + +3. **Rootfile system** + + Any *aarch64* supporting filesystem can be used. For example, + Ubuntu 16.04 LTS (Xenial) or 18.04 (Bionic) userland which can be obtained + from `here + <http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.1-base-arm64.tar.gz>`_. + +4. **Resource Scripts** + + DPAA2 based resources can be configured easily with the help of ready scripts + as provided in the DPDK Extra repository. + +5. **Build Config** + + Use dpaa build configs, they work for both DPAA2 and DPAA platforms. + +As an alternative method, DPAA2 PMD can also be executed using images provided +as part of SDK from NXP. The SDK includes all the above prerequisites necessary +to bring up a DPAA2 board. + +The following dependencies are not part of DPDK and must be installed +separately: + +- **NXP Linux SDK** + + NXP Linux software development kit (SDK) includes support for family + of QorIQ® ARM-Architecture-based system on chip (SoC) processors + and corresponding boards. + + It includes the Linux board support packages (BSPs) for NXP SoCs, + a fully operational tool chain, kernel and board specific modules. + + SDK and related information can be obtained from: `NXP QorIQ SDK <http://www.nxp.com/products/software-and-tools/run-time-software/linux-sdk/linux-sdk-for-qoriq-processors:SDKLINUX>`_. + + +.. _extra_scripts: + +- **DPDK Extra Scripts** + + DPAA2 based resources can be configured easily with the help of ready scripts + as provided in the DPDK Extra repository. + + `DPDK Extras Scripts <https://source.codeaurora.org/external/qoriq/qoriq-components/dpdk-extras>`_. + +Currently supported by DPDK: + +- NXP SDK **LSDK 19.09++**. +- MC Firmware version **10.18.0** and higher. +- Supported architectures: **arm64 LE**. + +- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` + to setup the basic DPDK environment. diff --git a/src/spdk/dpdk/doc/guides/platform/img/octeontx2_packet_flow_hw_accelerators.svg b/src/spdk/dpdk/doc/guides/platform/img/octeontx2_packet_flow_hw_accelerators.svg new file mode 100644 index 000000000..ecd575947 --- /dev/null +++ b/src/spdk/dpdk/doc/guides/platform/img/octeontx2_packet_flow_hw_accelerators.svg @@ -0,0 +1,2804 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<!-- +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2019 Marvell International Ltd. +# +--> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + 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="631.91431" + height="288.34286" + id="svg3868" + version="1.1" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" + sodipodi:docname="octeontx2_packet_flow_hw_accelerators.svg" + sodipodi:version="0.32" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs3870"> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker18508" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Send"> + <path + transform="scale(0.2) rotate(180) translate(6,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path18506" /> + </marker> + <marker + inkscape:stockid="Arrow1Sstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker18096" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path18094" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.2) translate(6,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker17550" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Sstart" + inkscape:collect="always"> + <path + transform="scale(0.2) translate(6,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path17548" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker17156" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Send"> + <path + transform="scale(0.2) rotate(180) translate(6,0)" + style="fill-rule:evenodd;stroke:#00db00;stroke-width:1pt;stroke-opacity:1;fill:#00db00;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path17154" /> + </marker> + <linearGradient + inkscape:collect="always" + id="linearGradient13962"> + <stop + style="stop-color:#fc0000;stop-opacity:1;" + offset="0" + id="stop13958" /> + <stop + style="stop-color:#fc0000;stop-opacity:0;" + offset="1" + id="stop13960" /> + </linearGradient> + <marker + inkscape:stockid="Arrow1Send" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Send" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path6218" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.2) rotate(180) translate(6,0)" /> + </marker> + <linearGradient + id="linearGradient13170" + osb:paint="solid"> + <stop + style="stop-color:#ff0000;stop-opacity:1;" + offset="0" + id="stop13168" /> + </linearGradient> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker12747" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path12745" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ff0000;stroke-opacity:1;fill:#ff0000;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(0.6) rotate(180) translate(0,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker10821" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Mend" + inkscape:collect="always"> + <path + transform="scale(0.6) rotate(180) translate(0,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:#fe0000;stroke-opacity:1;fill:#fe0000;fill-opacity:1" + id="path10819" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker10463" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(0.6) rotate(180) translate(0,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:#fe0000;stroke-opacity:1;fill:#fe0000;fill-opacity:1" + id="path10461" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Mend" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path6230" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#fe0000;stroke-opacity:1;fill:#fe0000;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(0.6) rotate(180) translate(0,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker9807" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutS"> + <path + transform="scale(0.2)" + style="fill-rule:evenodd;stroke:#fe0000;stroke-width:1pt;stroke-opacity:1;fill:#fe0000;fill-opacity:1" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path9805" /> + </marker> + <marker + inkscape:stockid="TriangleOutS" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleOutS" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path6351" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#fe0000;stroke-width:1pt;stroke-opacity:1;fill:#fe0000;fill-opacity:1" + transform="scale(0.2)" /> + </marker> + <marker + inkscape:stockid="Arrow1Sstart" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Sstart" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path6215" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.2) translate(6,0)" /> + </marker> + <linearGradient + inkscape:collect="always" + id="linearGradient4340"> + <stop + style="stop-color:#d7eef4;stop-opacity:1;" + offset="0" + id="stop4336" /> + <stop + style="stop-color:#d7eef4;stop-opacity:0;" + offset="1" + id="stop4338" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient4330"> + <stop + style="stop-color:#d7eef4;stop-opacity:1;" + offset="0" + id="stop4326" /> + <stop + style="stop-color:#d7eef4;stop-opacity:0;" + offset="1" + id="stop4328" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3596"> + <stop + style="stop-color:#6ba6fd;stop-opacity:1;" + offset="0" + id="stop3592" /> + <stop + style="stop-color:#6ba6fd;stop-opacity:0;" + offset="1" + id="stop3594" /> + </linearGradient> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker9460" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path9458" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker7396" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path7133" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <linearGradient + inkscape:collect="always" + id="linearGradient5474"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5470" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5472" /> + </linearGradient> + <linearGradient + id="linearGradient6545" + osb:paint="solid"> + <stop + style="stop-color:#ffa600;stop-opacity:1;" + offset="0" + id="stop6543" /> + </linearGradient> + <inkscape:path-effect + effect="spiro" + id="path-effect3302" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3294" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3290" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3286" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3228" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3188" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3184" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3180" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3176" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3172" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3168" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3164" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3160" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3120" + is_visible="true" /> + <linearGradient + id="linearGradient3114" + osb:paint="solid"> + <stop + style="stop-color:#00f900;stop-opacity:1;" + offset="0" + id="stop3112" /> + </linearGradient> + <linearGradient + id="linearGradient3088" + osb:paint="solid"> + <stop + style="stop-color:#00f900;stop-opacity:1;" + offset="0" + id="stop3086" /> + </linearGradient> + <linearGradient + id="linearGradient3058" + osb:paint="solid"> + <stop + style="stop-color:#00f900;stop-opacity:1;" + offset="0" + id="stop3056" /> + </linearGradient> + <inkscape:path-effect + effect="spiro" + id="path-effect3054" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3050" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3046" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3042" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3038" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3034" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3030" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3008" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3004" + is_visible="true" /> + <linearGradient + id="linearGradient2975" + osb:paint="solid"> + <stop + style="stop-color:#ff2200;stop-opacity:1;" + offset="0" + id="stop2973" /> + </linearGradient> + <linearGradient + id="linearGradient2969" + osb:paint="solid"> + <stop + style="stop-color:#69ff72;stop-opacity:1;" + offset="0" + id="stop2967" /> + </linearGradient> + <linearGradient + id="linearGradient2963" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop2961" /> + </linearGradient> + <linearGradient + id="linearGradient2929" + osb:paint="solid"> + <stop + style="stop-color:#ff2d00;stop-opacity:1;" + offset="0" + id="stop2927" /> + </linearGradient> + <linearGradient + id="linearGradient4610" + osb:paint="solid"> + <stop + style="stop-color:#00ffff;stop-opacity:1;" + offset="0" + id="stop4608" /> + </linearGradient> + <linearGradient + id="linearGradient3993" + osb:paint="solid"> + <stop + style="stop-color:#6ba6fd;stop-opacity:1;" + offset="0" + id="stop3991" /> + </linearGradient> + <linearGradient + id="linearGradient3808" + osb:paint="solid"> + <stop + style="stop-color:#6ba6fd;stop-opacity:1;" + offset="0" + id="stop3806" /> + </linearGradient> + <linearGradient + id="linearGradient3776" + osb:paint="solid"> + <stop + style="stop-color:#fc0000;stop-opacity:1;" + offset="0" + id="stop3774" /> + </linearGradient> + <linearGradient + id="linearGradient3438" + osb:paint="solid"> + <stop + style="stop-color:#b8e132;stop-opacity:1;" + offset="0" + id="stop3436" /> + </linearGradient> + <inkscape:path-effect + effect="spiro" + id="path-effect3408" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3404" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3400" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3392" + is_visible="true" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3376" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3044" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3040" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3036" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3032" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3028" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3024" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3020" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect2858" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect2854" + is_visible="true" /> + <inkscape:path-effect + effect="bspline" + id="path-effect2844" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <linearGradient + id="linearGradient2828" + osb:paint="solid"> + <stop + style="stop-color:#ff0000;stop-opacity:1;" + offset="0" + id="stop2826" /> + </linearGradient> + <inkscape:path-effect + effect="bspline" + id="path-effect329" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart" + style="overflow:visible"> + <path + id="path4530" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend" + style="overflow:visible"> + <path + id="path4533" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + id="linearGradient4513"> + <stop + style="stop-color:#fdffdb;stop-opacity:1;" + offset="0" + id="stop4515" /> + <stop + style="stop-color:#dfe2d8;stop-opacity:0;" + offset="1" + id="stop4517" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective3876" /> + <inkscape:perspective + id="perspective3886" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible"> + <path + id="path3211" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + 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="marker3892" + style="overflow:visible"> + <path + id="path3894" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + 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="marker3896" + style="overflow:visible"> + <path + id="path3898" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lstart" + style="overflow:visible"> + <path + id="path3208" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + 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="marker3902" + style="overflow:visible"> + <path + id="path3904" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="marker3906" + style="overflow:visible"> + <path + id="path3908" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + 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="marker3910" + style="overflow:visible"> + <path + id="path3912" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + id="perspective4086" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4113" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective5195" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-4" + style="overflow:visible"> + <path + id="path4533-7" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + id="perspective5272" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-4" + style="overflow:visible"> + <path + id="path4530-5" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-0" + style="overflow:visible"> + <path + id="path4533-3" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + id="perspective5317" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-3" + style="overflow:visible"> + <path + id="path4530-2" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-06" + style="overflow:visible"> + <path + id="path4533-1" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-8" + style="overflow:visible"> + <path + id="path4530-7" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-9" + style="overflow:visible"> + <path + id="path4533-2" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:path-effect + effect="spiro" + id="path-effect2858-0" + is_visible="true" /> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-3" + style="overflow:visible"> + <path + id="path4533-75" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:path-effect + effect="bspline" + id="path-effect3044-9" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-3-2" + style="overflow:visible"> + <path + id="path4533-75-8" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:path-effect + effect="bspline" + id="path-effect3044-9-9" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3008-3" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3120-7" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3120-7-3" + is_visible="true" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient5695" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.62723639,0,0,1.0109144,206.76869,3.9208776)" + x1="-89.501146" + y1="363.57419" + x2="-30.959395" + y2="363.57419" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-34" + style="overflow:visible"> + <path + id="path4530-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-45" + style="overflow:visible"> + <path + id="path4533-16" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-7" + style="overflow:visible"> + <path + id="path4530-58" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-1" + style="overflow:visible"> + <path + id="path4533-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-7-6" + style="overflow:visible"> + <path + id="path4530-58-4" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-1-9" + style="overflow:visible"> + <path + id="path4533-6-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-7-2" + style="overflow:visible"> + <path + id="path4530-58-46" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-1-1" + style="overflow:visible"> + <path + id="path4533-6-4" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-7-2-6" + style="overflow:visible"> + <path + id="path4530-58-46-8" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-1-1-9" + style="overflow:visible"> + <path + id="path4533-6-4-9" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient5917" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(8.8786147,-0.0235964,-0.00460261,1.50035,-400.25558,-2006.3745)" + x1="-0.12893644" + y1="1717.1688" + x2="28.140806" + y2="1717.1688" /> + <linearGradient + id="grad0-40" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="rotate(60,0.5,0.5)"> + <stop + offset="0" + stop-color="#f3f6fa" + stop-opacity="1" + id="stop3419" /> + <stop + offset="0.24" + stop-color="#f9fafc" + stop-opacity="1" + id="stop3421" /> + <stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop3423" /> + </linearGradient> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-30" + style="overflow:visible"> + <path + id="path4530-0" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-6" + style="overflow:visible"> + <path + id="path4533-19" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-30-0" + style="overflow:visible"> + <path + id="path4530-0-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-6-8" + style="overflow:visible"> + <path + id="path4533-19-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-30-0-9" + style="overflow:visible"> + <path + id="path4530-0-6-4" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-6-8-3" + style="overflow:visible"> + <path + id="path4533-19-6-1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient6997-7" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.62723639,0,0,1.0109144,321.82147,-1.8659026)" + x1="-89.501144" + y1="363.57419" + x2="-30.959394" + y2="363.57419" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-81" + style="overflow:visible"> + <path + id="path4530-9" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-5" + style="overflow:visible"> + <path + id="path4533-72" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-1" + style="overflow:visible"> + <path + id="path4530-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="marker9714" + style="overflow:visible"> + <path + id="path9712" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-48" + style="overflow:visible"> + <path + id="path4530-4" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="marker10117" + style="overflow:visible"> + <path + id="path10115" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-48-6" + style="overflow:visible"> + <path + id="path4530-4-0" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="marker11186" + style="overflow:visible"> + <path + id="path11184" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-30-0-9-0" + style="overflow:visible"> + <path + id="path4530-0-6-4-1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-6-8-3-7" + style="overflow:visible"> + <path + id="path4533-19-6-1-5" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3602" + x1="113.62777" + y1="238.35289" + x2="178.07406" + y2="238.35289" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(4,-22)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3604" + x1="106.04746" + y1="231.17514" + x2="170.49375" + y2="231.17514" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(4,-22)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3606" + x1="97.456466" + y1="223.48468" + x2="161.90276" + y2="223.48468" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(4,-22)" /> + <linearGradient + gradientTransform="matrix(1.2309135,0,0,0.9993652,112.21043,-29.394096)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-4" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="matrix(1.2419105,0,0,0.99933655,110.714,51.863352)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-4-8" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="matrix(1.3078944,0,0,0.99916717,224.87462,63.380078)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-4-8-7" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="matrix(1.2309135,0,0,0.9993652,359.82239,-48.56566)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-4-9" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(-35.122992,139.17627)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(32.977515,139.08289)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-9" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(100.97751,139.08289)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-9-1" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(168.97751,139.08289)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-9-1-5" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(236.97751,139.08289)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-9-1-5-7" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(516.30192,138.74331)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-9-1-5-73" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(448.30192,138.74331)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-9-1-59" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(380.30193,138.74331)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-9-8" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientTransform="translate(312.20142,138.83669)" + inkscape:collect="always" + xlink:href="#linearGradient3596" + id="linearGradient3608-8" + x1="88.739166" + y1="215.40981" + x2="153.18546" + y2="215.40981" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4330" + id="radialGradient4334" + cx="222.02666" + cy="354.61401" + fx="222.02666" + fy="354.61401" + r="171.25233" + gradientTransform="matrix(1,0,0,0.15767701,0,298.69953)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4340" + id="radialGradient4342" + cx="535.05641" + cy="353.56737" + fx="535.05641" + fy="353.56737" + r="136.95767" + gradientTransform="matrix(1.0000096,0,0,0.19866251,-0.00515595,284.82679)" + gradientUnits="userSpaceOnUse" /> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker28236" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + <path + inkscape:connector-curvature="0" + transform="scale(0.6)" + d="M 8.7185878,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="path28234" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="marker3706" + style="overflow:visible"> + <path + id="path3704" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:path-effect + effect="spiro" + id="path-effect14461" + is_visible="true" /> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-3" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path6230-9" + style="fill:#fe0000;fill-opacity:1;fill-rule:evenodd;stroke:#fe0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-3-1" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path6230-9-8" + style="fill:#fe0000;fill-opacity:1;fill-rule:evenodd;stroke:#fe0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient13962" + id="linearGradient14808" + x1="447.95767" + y1="176.3018" + x2="576.27008" + y2="176.3018" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-8)" /> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-3-1-6" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path6230-9-8-5" + style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-53" + style="overflow:visible"> + <path + id="path4533-35" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-99" + style="overflow:visible"> + <path + id="path4533-8" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.8101934" + inkscape:cx="434.42776" + inkscape:cy="99.90063" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1057" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + fit-margin-top="0.1" + fit-margin-left="0.1" + fit-margin-right="0.1" + fit-margin-bottom="0.1" + inkscape:measure-start="-29.078,219.858" + inkscape:measure-end="346.809,219.858" + showguides="true" + inkscape:snap-page="true" + inkscape:snap-others="false" + inkscape:snap-nodes="false" + inkscape:snap-bbox="true" + inkscape:lockguides="false" + inkscape:guide-bbox="true"> + <sodipodi:guide + position="-120.20815,574.17069" + orientation="0,1" + id="guide7077" + inkscape:locked="false" /> + </sodipodi:namedview> + <metadata + id="metadata3873"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-46.542857,-100.33361)"> + <rect + style="fill:#aaffcc;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.26491222;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-7" + width="64.18129" + height="45.550591" + x="575.72662" + y="144.79553" /> + <rect + style="fill:#aaffcc;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.26491222;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-8-5" + width="64.18129" + height="45.550591" + x="584.44391" + y="152.87041" /> + <rect + style="fill:#aaffcc;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.26491222;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-42-0" + width="64.18129" + height="45.550591" + x="593.03491" + y="160.56087" /> + <rect + style="fill:#aaffcc;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.26491222;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-0-3" + width="64.18129" + height="45.550591" + x="600.61523" + y="167.73862" /> + <rect + style="fill:#aaffcc;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.26491222;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-46-4" + width="64.18129" + height="45.550591" + x="608.70087" + y="175.42906" /> + <flowRoot + xml:space="preserve" + id="flowRoot1853-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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:#aaffcc;fill-opacity:1;stroke:none" + transform="matrix(0.71467688,0,0,0.72506311,529.61388,101.41825)"><flowRegion + id="flowRegion1855-0" + style="fill:#aaffcc"><rect + id="rect1857-5" + width="67.17514" + height="33.941124" + x="120.20815" + y="120.75856" + style="fill:#aaffcc" /></flowRegion><flowPara + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#aaffcc" + id="flowPara1976" /></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot5313" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;letter-spacing:0px;word-spacing:0px"><flowRegion + id="flowRegion5315"><rect + id="rect5317" + width="120.91525" + height="96.873627" + x="-192.33304" + y="-87.130829" /></flowRegion><flowPara + id="flowPara5319" /></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot8331" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:13.33333333px;line-height:1.25;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal"><flowRegion + id="flowRegion8333"><rect + id="rect8335" + width="48.5" + height="28" + x="252.5" + y="208.34286" /></flowRegion><flowPara + id="flowPara8337" /></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot11473" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + transform="translate(46.542857,100.33361)"><flowRegion + id="flowRegion11475"><rect + id="rect11477" + width="90" + height="14.5" + x="426" + y="26.342873" /></flowRegion><flowPara + id="flowPara11479">DDDpk</flowPara></flowRoot> <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="533.54285" + y="158.17648" + id="text11489"><tspan + sodipodi:role="line" + id="tspan11487" + x="533.54285" + y="170.34088" /></text> + <rect + style="fill:#f4d7d7;fill-opacity:1;stroke:url(#linearGradient3606);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-8" + width="64.18129" + height="45.550591" + x="101.58897" + y="178.70938" /> + <rect + style="fill:#f4d7d7;fill-opacity:1;stroke:url(#linearGradient3604);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-42" + width="64.18129" + height="45.550591" + x="110.17996" + y="186.39984" /> + <rect + style="fill:#f4d7d7;fill-opacity:1;stroke:url(#linearGradient3602);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-0" + width="64.18129" + height="45.550591" + x="117.76027" + y="193.57759" /> + <rect + style="fill:#f4d7d7;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-46" + width="64.18129" + height="45.550591" + x="125.84592" + y="201.26804" /> + <rect + style="fill:#d7f4e3;fill-opacity:1;stroke:url(#linearGradient3608-4);stroke-width:0.293915;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-86" + width="79.001617" + height="45.521675" + x="221.60374" + y="163.11812" /> + <rect + style="fill:#d7f4e3;fill-opacity:1;stroke:url(#linearGradient3608-4-8);stroke-width:0.29522076;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-86-5" + width="79.70742" + height="45.52037" + x="221.08463" + y="244.37004" /> + <rect + style="opacity:1;fill:#d7eef4;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.31139579;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718" + width="125.8186" + height="100.36277" + x="321.87323" + y="112.72702" /> + <rect + style="fill:#ffd5d5;fill-opacity:1;stroke:url(#linearGradient3608-4-8-7);stroke-width:0.30293623;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-86-5-3" + width="83.942352" + height="45.512653" + x="341.10928" + y="255.85414" /> + <rect + style="fill:#ffb380;fill-opacity:1;stroke:url(#linearGradient3608-4-9);stroke-width:0.293915;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-86-2" + width="79.001617" + height="45.521675" + x="469.21576" + y="143.94656" /> + <rect + style="opacity:1;fill:url(#radialGradient4334);fill-opacity:1;stroke:#6ba6fd;stroke-width:0.32037571;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3783" + width="342.1843" + height="53.684738" + x="50.934502" + y="327.77164" /> + <rect + style="fill:#e9ddaf;fill-opacity:1;stroke:url(#linearGradient3608);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1" + width="64.18129" + height="45.550591" + x="53.748672" + y="331.81079" /> + <rect + style="fill:#e9ddaf;fill-opacity:1;stroke:url(#linearGradient3608-9);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-3" + width="64.18129" + height="45.550591" + x="121.84918" + y="331.71741" /> + <rect + style="fill:#e9ddaf;fill-opacity:1;stroke:url(#linearGradient3608-9-1);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-3-6" + width="64.18129" + height="45.550591" + x="189.84918" + y="331.71741" /> + <rect + style="fill:#e9ddaf;fill-opacity:1;stroke:url(#linearGradient3608-9-1-5);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-3-6-4" + width="64.18129" + height="45.550591" + x="257.84918" + y="331.71741" /> + <rect + style="fill:#e9ddaf;fill-opacity:1;stroke:url(#linearGradient3608-9-1-5-7);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-3-6-4-9" + width="64.18129" + height="45.550591" + x="325.84918" + y="331.71741" /> + <rect + style="opacity:1;fill:url(#radialGradient4342);fill-opacity:1;stroke:#6ba6fd;stroke-width:0.28768006;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3783-8" + width="273.62766" + height="54.131645" + x="398.24258" + y="328.00156" /> + <rect + style="fill:#dde9af;fill-opacity:1;stroke:url(#linearGradient3608-8);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-5" + width="64.18129" + height="45.550591" + x="401.07309" + y="331.47122" /> + <rect + style="fill:#dde9af;fill-opacity:1;stroke:url(#linearGradient3608-9-8);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-3-0" + width="64.18129" + height="45.550591" + x="469.17358" + y="331.37781" /> + <rect + style="fill:#dde9af;fill-opacity:1;stroke:url(#linearGradient3608-9-1-59);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-3-6-3" + width="64.18129" + height="45.550591" + x="537.17358" + y="331.37781" /> + <rect + style="fill:#dde9af;fill-opacity:1;stroke:url(#linearGradient3608-9-1-5-73);stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-3-6-4-6" + width="64.18129" + height="45.550591" + x="605.17358" + y="331.37781" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3" + width="27.798103" + height="21.434149" + x="325.80197" + y="117.21037" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8" + width="27.798103" + height="21.434149" + x="325.2959" + y="140.20857" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9" + width="27.798103" + height="21.434149" + x="325.2959" + y="164.20857" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-5" + width="27.798103" + height="21.434149" + x="356.37054" + y="117.39072" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-1" + width="27.798103" + height="21.434149" + x="355.86447" + y="140.38893" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2" + width="27.798103" + height="21.434149" + x="355.86447" + y="164.38893" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-5-5" + width="27.798103" + height="21.434149" + x="386.37054" + y="117.39072" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-1-9" + width="27.798103" + height="21.434149" + x="385.86447" + y="140.38895" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-6" + width="27.798103" + height="21.434149" + x="385.86447" + y="164.38895" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-5-5-9" + width="27.798103" + height="21.434149" + x="416.37054" + y="117.39072" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-1-9-3" + width="27.798103" + height="21.434149" + x="415.86447" + y="140.38895" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-6-8" + width="27.798103" + height="21.434149" + x="415.86447" + y="164.38896" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-5" + width="27.798103" + height="21.434149" + x="324.61139" + y="187.85849" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-0" + width="27.798103" + height="21.434149" + x="355.17996" + y="188.03886" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-6-0" + width="27.798103" + height="21.434149" + x="385.17996" + y="188.03888" /> + <rect + style="opacity:1;fill:#ffeeaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-6-8-4" + width="27.798103" + height="21.434149" + x="415.17996" + y="188.03889" /> + <rect + style="opacity:1;fill:#d7eef4;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.31139579;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-5" + width="125.8186" + height="100.36277" + x="452.24075" + y="208.56764" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-9" + width="27.798103" + height="21.434149" + x="456.16949" + y="213.05098" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-8" + width="27.798103" + height="21.434149" + x="455.66342" + y="236.04919" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-55" + width="27.798103" + height="21.434149" + x="455.66342" + y="260.04919" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-5-7" + width="27.798103" + height="21.434149" + x="486.73807" + y="213.23134" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-1-5" + width="27.798103" + height="21.434149" + x="486.23199" + y="236.22954" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-3" + width="27.798103" + height="21.434149" + x="486.23199" + y="260.22955" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-5-5-2" + width="27.798103" + height="21.434149" + x="516.73804" + y="213.23134" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-1-9-5" + width="27.798103" + height="21.434149" + x="516.23199" + y="236.22955" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-6-1" + width="27.798103" + height="21.434149" + x="516.23199" + y="260.22955" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-5-5-9-6" + width="27.798103" + height="21.434149" + x="546.73804" + y="213.23134" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-1-9-3-1" + width="27.798103" + height="21.434149" + x="546.23199" + y="236.22955" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-6-8-7" + width="27.798103" + height="21.434149" + x="546.23199" + y="260.22955" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-5-1" + width="27.798103" + height="21.434149" + x="454.97891" + y="283.6991" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-0-6" + width="27.798103" + height="21.434149" + x="485.54749" + y="283.87946" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-6-0-7" + width="27.798103" + height="21.434149" + x="515.54749" + y="283.87949" /> + <rect + style="opacity:1;fill:#ffccaa;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.837071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3718-3-8-9-2-6-8-4-2" + width="27.798103" + height="21.434149" + x="545.54749" + y="283.87952" /> + <g + id="g5089" + transform="matrix(0.7206312,0,0,1.0073979,12.37404,-312.02679)" + style="fill:#ff8080"> + <path + inkscape:connector-curvature="0" + d="m 64.439519,501.23542 v 5.43455 h 45.917801 v -5.43455 z" + style="opacity:1;fill:#ff8080;fill-opacity:1;stroke:#6ba6fd;stroke-width:1.09656608;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" + id="rect4455" /> + <path + inkscape:connector-curvature="0" + id="path5083" + d="m 108.30535,494.82846 c 13.96414,8.6951 13.96414,8.40526 13.96414,8.40526 l -12.46798,9.85445 z" + style="fill:#ff8080;stroke:#000000;stroke-width:0.53767502px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g5089-4" + transform="matrix(-0.6745281,0,0,0.97266112,143.12774,-266.3349)" + style="fill:#000080;fill-opacity:1"> + <path + inkscape:connector-curvature="0" + d="m 64.439519,501.23542 v 5.43455 h 45.917801 v -5.43455 z" + style="opacity:1;fill:#000080;fill-opacity:1;stroke:#6ba6fd;stroke-width:1.09656608;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" + id="rect4455-9" /> + <path + inkscape:connector-curvature="0" + id="path5083-2" + d="m 108.30535,494.82846 c 13.96414,8.6951 13.96414,8.40526 13.96414,8.40526 l -12.46798,9.85445 z" + style="fill:#000080;stroke:#000000;stroke-width:0.53767502px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" /> + </g> + <flowRoot + xml:space="preserve" + id="flowRoot5112" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + transform="translate(52.199711,162.55901)"><flowRegion + id="flowRegion5114"><rect + id="rect5116" + width="28.991377" + height="19.79899" + x="22.627417" + y="64.897125" /></flowRegion><flowPara + id="flowPara5118">Tx</flowPara></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot5112-8" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + transform="translate(49.878465,112.26812)"><flowRegion + id="flowRegion5114-7"><rect + id="rect5116-7" + width="28.991377" + height="19.79899" + x="22.627417" + y="64.897125" /></flowRegion><flowPara + id="flowPara5118-5">Rx</flowPara></flowRoot> <path + style="fill:none;stroke:#f60300;stroke-width:0.783;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.783, 0.78300000000000003;stroke-dashoffset:0;marker-start:url(#Arrow1Sstart);marker-end:url(#TriangleOutS)" + d="m 116.81066,179.28348 v -11.31903 l -0.37893,-12.93605 0.37893,-5.25526 3.03134,-5.25526 4.16811,-2.82976 8.3362,-1.61701 h 7.19945 l 7.19946,2.02126 3.03135,2.02126 0.37892,2.02125 -0.37892,3.23401 -0.37892,7.27652 -0.37892,8.48927 -0.37892,14.55304" + id="path8433" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="104.04285" + y="144.86398" + id="text9071"><tspan + sodipodi:role="line" + id="tspan9069" + x="104.04285" + y="144.86398" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333333px;font-family:monospace;-inkscape-font-specification:monospace;fill:#0000ff">HW loop back device</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="59.542858" + y="53.676483" + id="text9621"><tspan + sodipodi:role="line" + id="tspan9619" + x="59.542858" + y="65.840889" /></text> + <flowRoot + xml:space="preserve" + id="flowRoot1853-7-2-7-8-7-2-4-3-9-0-2-9-5-6-7-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + transform="matrix(0.57822568,0,0,0.72506311,454.1297,247.6848)"><flowRegion + id="flowRegion1855-0-1-3-66-99-9-2-5-4-1-1-1-4-0-5-4"><rect + id="rect1857-5-1-5-2-6-1-4-9-3-8-1-8-5-7-9-1" + width="162.09244" + height="78.764809" + x="120.20815" + y="120.75856" /></flowRegion><flowPara + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#5500d4" + id="flowPara9723" /></flowRoot> <path + style="fill:none;stroke:#fe0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)" + d="m 181.60025,194.22211 12.72792,-7.07106 14.14214,-2.82843 12.02081,0.70711 h 1.41422 v 0" + id="path9797" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#fe0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#marker10821)" + d="m 179.47893,193.51501 3.53554,-14.14214 5.65685,-12.72792 16.97056,-9.19239 8.48528,-9.19238 14.84924,-7.77818 24.04163,-8.48528 18.38478,-6.36396 38.89087,-2.82843 h 12.02082 l -2.12132,-0.7071" + id="path10453" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#fe0000;stroke-width:0.70021206;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.70021208, 0.70021208;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Mend-3)" + d="m 299.68795,188.0612 7.97521,-5.53298 8.86135,-2.2132 7.53214,0.5533 h 0.88614 v 0" + id="path9797-9" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#fe0000;stroke-width:0.96708673;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.96708673, 0.96708673;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Mend-3-1)" + d="m 300.49277,174.25976 7.49033,-11.23756 8.32259,-4.49504 7.07419,1.12376 h 0.83227 v 0" + id="path9797-9-7" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#marker12747)" + d="m 299.68708,196.34344 9.19239,7.77817 7.07107,1.41421 h 4.94974 v 0" + id="path12737" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:url(#linearGradient14808);stroke-width:4.66056013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.66056002, 4.66056002;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Send)" + d="m 447.95767,168.30181 c 119.99171,0 119.99171,0 119.99171,0" + id="path13236" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#808080;stroke-width:0.96708673;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.96708673, 0.96708673000000001;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Mend-3-1-6)" + d="m 529.56098,142.71226 7.49033,-11.23756 8.32259,-4.49504 7.07419,1.12376 h 0.83227 v 0" + id="path9797-9-7-3" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00ffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#Arrow1Mend)" + d="m 612.93538,222.50639 -5.65686,12.72792 -14.84924,3.53553 -14.14213,0.70711" + id="path16128" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00ffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0" + d="m 624.95619,220.38507 -3.53553,13.43502 -12.72792,14.84925 -9.19239,5.65685 -19.09188,2.82843 -1.41422,-0.70711 h -1.41421" + id="path16130" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00ffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0" + d="m 635.56279,221.09217 -7.77817,33.94113 -4.24264,6.36396 -8.48528,3.53553 -10.6066,4.94975 -19.09189,5.65685 -6.36396,3.53554" + id="path16132" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00ffff;stroke-width:1.01083219;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.01083222, 1.01083221999999995;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mend-53)" + d="m 456.03282,270.85761 -4.96024,14.83162 -13.02062,4.11988 -12.40058,0.82399" + id="path16128-3" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00ffff;stroke-width:0.80101544;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.80101541, 0.80101540999999998;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mend-99)" + d="m 341.29831,266.70565 -6.88826,6.70663 -18.08168,1.86296 -17.22065,0.37258" + id="path16128-6" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00faf5;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#Arrow1Mend)" + d="m 219.78402,264.93279 -6.36396,-9.89949 -3.53554,-16.26346 -7.77817,-8.48528 -8.48528,-4.94975 -4.94975,-2.82842" + id="path17144" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00db00;stroke-width:1.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1.4, 1.39999999999999991;stroke-dashoffset:0;marker-end:url(#marker17156);marker-start:url(#marker17550)" + d="m 651.11914,221.09217 -7.07107,31.81981 -17.67766,34.64823 -21.21321,26.87005 -80.61017,1.41422 -86.97413,1.41421 -79.90306,-3.53553 -52.3259,1.41421 -24.04163,10.6066 -2.82843,1.41422" + id="path17146" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#000000;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1.3, 1.30000000000000004;stroke-dashoffset:0;marker-start:url(#marker18096);marker-end:url(#marker18508)" + d="M 659.60442,221.09217 C 656.776,327.86529 656.776,328.5724 656.776,328.5724" + id="path18086" + inkscape:connector-curvature="0" /> + <flowRoot + xml:space="preserve" + id="flowRoot1853-7-2-7-8-7-2" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + transform="matrix(0.57822568,0,0,0.72506311,137.7802,161.1139)"><flowRegion + id="flowRegion1855-0-1-3-66-99-9"><rect + id="rect1857-5-1-5-2-6-1" + width="174.19844" + height="91.867104" + x="120.20815" + y="120.75856" /></flowRegion><flowPara + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#5500d4" + id="flowPara9188-8-4" /></flowRoot> <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none" + x="155.96185" + y="220.07472" + id="text9071-6"><tspan + sodipodi:role="line" + x="158.29518" + y="220.07472" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle" + id="tspan2100"> <tspan + style="fill:#0000ff" + id="tspan2327">Ethdev Ports </tspan></tspan><tspan + sodipodi:role="line" + x="155.96185" + y="236.74139" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2104">(NIX)</tspan></text> + <flowRoot + xml:space="preserve" + id="flowRoot2106" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:13.33333333px;line-height:1.25;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal"><flowRegion + id="flowRegion2108"><rect + id="rect2110" + width="42.1875" + height="28.125" + x="178.125" + y="71.155365" /></flowRegion><flowPara + id="flowPara2112" /></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot2114" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:13.33333333px;line-height:1.25;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal"><flowRegion + id="flowRegion2116"><rect + id="rect2118" + width="38.28125" + height="28.90625" + x="196.09375" + y="74.280365" /></flowRegion><flowPara + id="flowPara2120" /></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot2122" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:13.33333333px;line-height:1.25;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal"><flowRegion + id="flowRegion2124"><rect + id="rect2126" + width="39.0625" + height="23.4375" + x="186.71875" + y="153.96786" /></flowRegion><flowPara + id="flowPara2128" /></flowRoot> <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none" + x="262.1366" + y="172.08614" + id="text9071-6-4"><tspan + sodipodi:role="line" + x="264.46994" + y="172.08614" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2104-0">Ingress </tspan><tspan + sodipodi:role="line" + x="262.1366" + y="188.75281" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2176">Classification</tspan><tspan + sodipodi:role="line" + x="262.1366" + y="205.41946" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2180">(NPC)</tspan><tspan + sodipodi:role="line" + x="262.1366" + y="222.08614" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2178" /><tspan + sodipodi:role="line" + x="262.1366" + y="238.75281" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2174" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none" + x="261.26727" + y="254.46307" + id="text9071-6-4-9"><tspan + sodipodi:role="line" + x="263.60062" + y="254.46307" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2104-0-0">Egress </tspan><tspan + sodipodi:role="line" + x="261.26727" + y="271.12973" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2176-8">Classification</tspan><tspan + sodipodi:role="line" + x="261.26727" + y="287.79642" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2180-9">(NPC)</tspan><tspan + sodipodi:role="line" + x="261.26727" + y="304.46307" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2178-3" /><tspan + sodipodi:role="line" + x="261.26727" + y="321.12973" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle" + id="tspan2174-7" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="362.7016" + y="111.81297" + id="text9071-4"><tspan + sodipodi:role="line" + id="tspan9069-8" + x="362.7016" + y="111.81297" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;fill:#0000ff">Rx Queues</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="488.21777" + y="207.21898" + id="text9071-4-3"><tspan + sodipodi:role="line" + id="tspan9069-8-8" + x="488.21777" + y="207.21898" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;fill:#0000ff">Tx Queues</tspan></text> + <flowRoot + xml:space="preserve" + id="flowRoot2311" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:13.33333333px;line-height:1.25;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal"><flowRegion + id="flowRegion2313"><rect + id="rect2315" + width="49.21875" + height="41.40625" + x="195.3125" + y="68.811615" /></flowRegion><flowPara + id="flowPara2317" /></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot2319" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:13.33333333px;line-height:1.25;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal"><flowRegion + id="flowRegion2321"><rect + id="rect2323" + width="40.625" + height="39.0625" + x="196.09375" + y="69.592865" /></flowRegion><flowPara + id="flowPara2325" /></flowRoot> <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none" + x="382.20477" + y="263.74432" + id="text9071-6-4-6"><tspan + sodipodi:role="line" + x="382.20477" + y="263.74432" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2104-0-9">Egress</tspan><tspan + sodipodi:role="line" + x="382.20477" + y="280.41098" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2176-3">Traffic Manager</tspan><tspan + sodipodi:role="line" + x="382.20477" + y="297.07767" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2180-1">(NIX)</tspan><tspan + sodipodi:role="line" + x="382.20477" + y="313.74432" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2178-6" /><tspan + sodipodi:role="line" + x="382.20477" + y="330.41098" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2174-8" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none" + x="500.98602" + y="154.02556" + id="text9071-6-4-0"><tspan + sodipodi:role="line" + x="503.31937" + y="154.02556" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2104-0-97">Scheduler </tspan><tspan + sodipodi:role="line" + x="500.98602" + y="170.69223" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2389" /><tspan + sodipodi:role="line" + x="500.98602" + y="187.35889" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2391">SSO</tspan><tspan + sodipodi:role="line" + x="500.98602" + y="204.02556" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2178-60" /><tspan + sodipodi:role="line" + x="500.98602" + y="220.69223" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2174-3" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="571.61627" + y="119.24016" + id="text9071-4-2"><tspan + sodipodi:role="line" + id="tspan9069-8-82" + x="571.61627" + y="119.24016" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff">Supports both poll mode and/or event mode</tspan><tspan + sodipodi:role="line" + x="571.61627" + y="135.90683" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2416">by configuring scheduler</tspan><tspan + sodipodi:role="line" + x="571.61627" + y="152.57349" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2418" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none" + x="638.14227" + y="192.46773" + id="text9071-6-4-9-2"><tspan + sodipodi:role="line" + x="638.14227" + y="192.46773" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2178-3-2">ARMv8</tspan><tspan + sodipodi:role="line" + x="638.14227" + y="209.1344" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2499">Cores</tspan><tspan + sodipodi:role="line" + x="638.14227" + y="225.80106" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle" + id="tspan2174-7-8" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="180.24902" + y="325.09399" + id="text9071-4-1"><tspan + sodipodi:role="line" + id="tspan9069-8-7" + x="180.24902" + y="325.09399" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;fill:#0000ff">Hardware Libraries</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="487.8916" + y="325.91599" + id="text9071-4-1-1"><tspan + sodipodi:role="line" + id="tspan9069-8-7-1" + x="487.8916" + y="325.91599" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;fill:#0000ff">Software Libraries</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="81.178604" + y="350.03149" + id="text9071-4-18"><tspan + sodipodi:role="line" + id="tspan9069-8-83" + x="81.178604" + y="350.03149" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff">Mempool</tspan><tspan + sodipodi:role="line" + x="81.178604" + y="366.69815" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2555">(NPA)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="151.09518" + y="348.77365" + id="text9071-4-18-9"><tspan + sodipodi:role="line" + id="tspan9069-8-83-3" + x="151.09518" + y="348.77365" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff">Timer</tspan><tspan + sodipodi:role="line" + x="151.09518" + y="365.44031" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2555-9">(TIM)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="222.56393" + y="347.1174" + id="text9071-4-18-0"><tspan + sodipodi:role="line" + x="222.56393" + y="347.1174" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2555-90">Crypto</tspan><tspan + sodipodi:role="line" + x="222.56393" + y="363.78406" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2601">(CPT)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="289.00229" + y="347.69473" + id="text9071-4-18-0-5"><tspan + sodipodi:role="line" + x="289.00229" + y="347.69473" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2555-90-9">Compress</tspan><tspan + sodipodi:role="line" + x="289.00229" + y="364.36139" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2601-6">(ZIP)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="355.50653" + y="348.60098" + id="text9071-4-18-0-5-6"><tspan + sodipodi:role="line" + x="355.50653" + y="348.60098" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2555-90-9-5">Shared</tspan><tspan + sodipodi:role="line" + x="355.50653" + y="365.26764" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2645">Memory</tspan><tspan + sodipodi:role="line" + x="355.50653" + y="381.93433" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2601-6-1" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="430.31393" + y="356.4924" + id="text9071-4-18-1"><tspan + sodipodi:role="line" + id="tspan9069-8-83-35" + x="430.31393" + y="356.4924" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff">SW Ring</tspan><tspan + sodipodi:role="line" + x="430.31393" + y="373.15906" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2555-6" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="569.37646" + y="341.1799" + id="text9071-4-18-2"><tspan + sodipodi:role="line" + id="tspan9069-8-83-4" + x="569.37646" + y="341.1799" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff">HASH</tspan><tspan + sodipodi:role="line" + x="569.37646" + y="357.84656" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2742">LPM</tspan><tspan + sodipodi:role="line" + x="569.37646" + y="374.51324" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2555-2">ACL</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="503.75143" + y="355.02365" + id="text9071-4-18-2-3"><tspan + sodipodi:role="line" + x="503.75143" + y="355.02365" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2733">Mbuf</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="639.34521" + y="355.6174" + id="text9071-4-18-19"><tspan + sodipodi:role="line" + x="639.34521" + y="355.6174" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#0000ff" + id="tspan2771">De(Frag)</tspan></text> + </g> +</svg> diff --git a/src/spdk/dpdk/doc/guides/platform/img/octeontx2_resource_virtualization.svg b/src/spdk/dpdk/doc/guides/platform/img/octeontx2_resource_virtualization.svg new file mode 100644 index 000000000..bf976b52a --- /dev/null +++ b/src/spdk/dpdk/doc/guides/platform/img/octeontx2_resource_virtualization.svg @@ -0,0 +1,2418 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<!-- +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2019 Marvell International Ltd. +# +--> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + 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="631.91431" + height="288.34286" + id="svg3868" + version="1.1" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" + sodipodi:docname="octeontx2_resource_virtualization.svg" + sodipodi:version="0.32" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs3870"> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker9460" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path9458" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker7396" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path7133" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <linearGradient + inkscape:collect="always" + id="linearGradient5474"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5470" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5472" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5464"> + <stop + style="stop-color:#daeef5;stop-opacity:1;" + offset="0" + id="stop5460" /> + <stop + style="stop-color:#daeef5;stop-opacity:0;" + offset="1" + id="stop5462" /> + </linearGradient> + <linearGradient + id="linearGradient6545" + osb:paint="solid"> + <stop + style="stop-color:#ffa600;stop-opacity:1;" + offset="0" + id="stop6543" /> + </linearGradient> + <inkscape:path-effect + effect="spiro" + id="path-effect3302" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3294" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3290" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3286" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3228" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3188" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3184" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3180" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3176" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3172" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3168" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3164" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3160" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3120" + is_visible="true" /> + <linearGradient + id="linearGradient3114" + osb:paint="solid"> + <stop + style="stop-color:#00f900;stop-opacity:1;" + offset="0" + id="stop3112" /> + </linearGradient> + <linearGradient + id="linearGradient3088" + osb:paint="solid"> + <stop + style="stop-color:#00f900;stop-opacity:1;" + offset="0" + id="stop3086" /> + </linearGradient> + <linearGradient + id="linearGradient3058" + osb:paint="solid"> + <stop + style="stop-color:#00f900;stop-opacity:1;" + offset="0" + id="stop3056" /> + </linearGradient> + <inkscape:path-effect + effect="spiro" + id="path-effect3054" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3050" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3046" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3042" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3038" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3034" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3030" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3008" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3004" + is_visible="true" /> + <linearGradient + id="linearGradient2975" + osb:paint="solid"> + <stop + style="stop-color:#ff2200;stop-opacity:1;" + offset="0" + id="stop2973" /> + </linearGradient> + <linearGradient + id="linearGradient2969" + osb:paint="solid"> + <stop + style="stop-color:#69ff72;stop-opacity:1;" + offset="0" + id="stop2967" /> + </linearGradient> + <linearGradient + id="linearGradient2963" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop2961" /> + </linearGradient> + <linearGradient + id="linearGradient2929" + osb:paint="solid"> + <stop + style="stop-color:#ff2d00;stop-opacity:1;" + offset="0" + id="stop2927" /> + </linearGradient> + <linearGradient + id="linearGradient4610" + osb:paint="solid"> + <stop + style="stop-color:#00ffff;stop-opacity:1;" + offset="0" + id="stop4608" /> + </linearGradient> + <linearGradient + id="linearGradient3993" + osb:paint="solid"> + <stop + style="stop-color:#6ba6fd;stop-opacity:1;" + offset="0" + id="stop3991" /> + </linearGradient> + <linearGradient + id="linearGradient3808" + osb:paint="solid"> + <stop + style="stop-color:#6ba6fd;stop-opacity:1;" + offset="0" + id="stop3806" /> + </linearGradient> + <linearGradient + id="linearGradient3776" + osb:paint="solid"> + <stop + style="stop-color:#fc0000;stop-opacity:1;" + offset="0" + id="stop3774" /> + </linearGradient> + <linearGradient + id="linearGradient3438" + osb:paint="solid"> + <stop + style="stop-color:#b8e132;stop-opacity:1;" + offset="0" + id="stop3436" /> + </linearGradient> + <inkscape:path-effect + effect="spiro" + id="path-effect3408" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3404" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3400" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3392" + is_visible="true" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3376" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3044" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3040" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3036" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3032" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3028" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="bspline" + id="path-effect3024" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3020" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect2858" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect2854" + is_visible="true" /> + <inkscape:path-effect + effect="bspline" + id="path-effect2844" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <linearGradient + id="linearGradient2828" + osb:paint="solid"> + <stop + style="stop-color:#ff0000;stop-opacity:1;" + offset="0" + id="stop2826" /> + </linearGradient> + <inkscape:path-effect + effect="bspline" + id="path-effect329" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart" + style="overflow:visible"> + <path + id="path4530" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend" + style="overflow:visible"> + <path + id="path4533" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + id="linearGradient4513"> + <stop + style="stop-color:#fdffdb;stop-opacity:1;" + offset="0" + id="stop4515" /> + <stop + style="stop-color:#dfe2d8;stop-opacity:0;" + offset="1" + id="stop4517" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective3876" /> + <inkscape:perspective + id="perspective3886" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible"> + <path + id="path3211" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + 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="marker3892" + style="overflow:visible"> + <path + id="path3894" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + 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="marker3896" + style="overflow:visible"> + <path + id="path3898" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lstart" + style="overflow:visible"> + <path + id="path3208" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + 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="marker3902" + style="overflow:visible"> + <path + id="path3904" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="marker3906" + style="overflow:visible"> + <path + id="path3908" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + 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="marker3910" + style="overflow:visible"> + <path + id="path3912" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + id="perspective4086" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective4113" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective5195" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-4" + style="overflow:visible"> + <path + id="path4533-7" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + id="perspective5272" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-4" + style="overflow:visible"> + <path + id="path4530-5" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-0" + style="overflow:visible"> + <path + id="path4533-3" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:perspective + id="perspective5317" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-3" + style="overflow:visible"> + <path + id="path4530-2" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-06" + style="overflow:visible"> + <path + id="path4533-1" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-8" + style="overflow:visible"> + <path + id="path4530-7" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-9" + style="overflow:visible"> + <path + id="path4533-2" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:path-effect + effect="spiro" + id="path-effect2858-0" + is_visible="true" /> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-3" + style="overflow:visible"> + <path + id="path4533-75" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:path-effect + effect="bspline" + id="path-effect3044-9" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-3-2" + style="overflow:visible"> + <path + id="path4533-75-8" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <inkscape:path-effect + effect="bspline" + id="path-effect3044-9-9" + is_visible="true" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3008-3" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3120-7" + is_visible="true" /> + <inkscape:path-effect + effect="spiro" + id="path-effect3120-7-3" + is_visible="true" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5464" + id="linearGradient5466" + x1="65.724048" + y1="169.38839" + x2="183.38978" + y2="169.38839" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-14,-4)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient5476" + x1="-89.501146" + y1="363.57419" + x2="-30.959395" + y2="363.57419" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.62723639,0,0,1.0109144,105.65926,-0.6580533)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient5658" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.62723639,0,0,1.0109144,148.76869,-0.0791224)" + x1="-89.501146" + y1="363.57419" + x2="-30.959395" + y2="363.57419" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient5695" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.62723639,0,0,1.0109144,206.76869,3.9208776)" + x1="-89.501146" + y1="363.57419" + x2="-30.959395" + y2="363.57419" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-34" + style="overflow:visible"> + <path + id="path4530-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-45" + style="overflow:visible"> + <path + id="path4533-16" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-7" + style="overflow:visible"> + <path + id="path4530-58" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-1" + style="overflow:visible"> + <path + id="path4533-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-7-6" + style="overflow:visible"> + <path + id="path4530-58-4" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-1-9" + style="overflow:visible"> + <path + id="path4533-6-3" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-7-2" + style="overflow:visible"> + <path + id="path4530-58-46" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-1-1" + style="overflow:visible"> + <path + id="path4533-6-4" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-7-2-6" + style="overflow:visible"> + <path + id="path4530-58-46-8" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-1-1-9" + style="overflow:visible"> + <path + id="path4533-6-4-9" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient6997" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.62723639,0,0,1.0109144,192.76869,-0.0791224)" + x1="-89.501146" + y1="363.57419" + x2="-30.959395" + y2="363.57419" /> + <linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient5917" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(8.8786147,-0.0235964,-0.00460261,1.50035,-400.25558,-2006.3745)" + x1="-0.12893644" + y1="1717.1688" + x2="28.140806" + y2="1717.1688" /> + <linearGradient + id="grad0-40" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="rotate(60,0.5,0.5)"> + <stop + offset="0" + stop-color="#f3f6fa" + stop-opacity="1" + id="stop3419" /> + <stop + offset="0.24" + stop-color="#f9fafc" + stop-opacity="1" + id="stop3421" /> + <stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop3423" /> + </linearGradient> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-30" + style="overflow:visible"> + <path + id="path4530-0" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-6" + style="overflow:visible"> + <path + id="path4533-19" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-30-0" + style="overflow:visible"> + <path + id="path4530-0-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-6-8" + style="overflow:visible"> + <path + id="path4533-19-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-30-0-9" + style="overflow:visible"> + <path + id="path4530-0-6-4" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-6-8-3" + style="overflow:visible"> + <path + id="path4533-19-6-1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient6997-7" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.62723639,0,0,1.0109144,321.82147,-1.8659026)" + x1="-89.501144" + y1="363.57419" + x2="-30.959394" + y2="363.57419" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient6997-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.3985479,0,0,0.98036646,376.02779,12.240541)" + x1="-89.501144" + y1="363.57419" + x2="-30.959394" + y2="363.57419" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-81" + style="overflow:visible"> + <path + id="path4530-9" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-5" + style="overflow:visible"> + <path + id="path4533-72" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-1" + style="overflow:visible"> + <path + id="path4530-6" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="marker9714" + style="overflow:visible"> + <path + id="path9712" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-48" + style="overflow:visible"> + <path + id="path4530-4" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="marker10117" + style="overflow:visible"> + <path + id="path10115" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-48-6" + style="overflow:visible"> + <path + id="path4530-4-0" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="marker11186" + style="overflow:visible"> + <path + id="path11184" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5474" + id="linearGradient6997-8-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.3985479,0,0,0.98036646,497.77779,12.751681)" + x1="-89.501144" + y1="363.57419" + x2="-30.959394" + y2="363.57419" /> + <marker + inkscape:stockid="Arrow1Mstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mstart-30-0-9-0" + style="overflow:visible"> + <path + id="path4530-0-6-4-1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(0.4,0,0,0.4,4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-6-8-3-7" + style="overflow:visible"> + <path + id="path4533-19-6-1-5" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4142136" + inkscape:cx="371.09569" + inkscape:cy="130.22425" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1057" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + fit-margin-top="0.1" + fit-margin-left="0.1" + fit-margin-right="0.1" + fit-margin-bottom="0.1" + inkscape:measure-start="-29.078,219.858" + inkscape:measure-end="346.809,219.858" + showguides="true" + inkscape:snap-page="true" + inkscape:snap-others="false" + inkscape:snap-nodes="false" + inkscape:snap-bbox="true" + inkscape:lockguides="false" + inkscape:guide-bbox="true"> + <sodipodi:guide + position="-120.20815,574.17069" + orientation="0,1" + id="guide7077" + inkscape:locked="false" /> + </sodipodi:namedview> + <metadata + id="metadata3873"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-46.542857,-100.33361)"> + <flowRoot + xml:space="preserve" + id="flowRoot5313" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;letter-spacing:0px;word-spacing:0px"><flowRegion + id="flowRegion5315"><rect + id="rect5317" + width="120.91525" + height="96.873627" + x="-192.33304" + y="-87.130829" /></flowRegion><flowPara + id="flowPara5319" /></flowRoot> <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="90.320152" + y="299.67871" + id="text2978" + inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png" + inkscape:export-xdpi="112" + inkscape:export-ydpi="112" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="90.320152" + y="299.67871" + id="tspan3006" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.74255753px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025"> </tspan></text> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.82973665;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066" + width="127.44949" + height="225.03024" + x="47.185646" + y="111.20448" /> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.55883217;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5096" + width="117.1069" + height="20.907221" + x="52.003464" + y="154.93478" /> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b78fd;stroke-width:0.55900002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5096-6" + width="117.1069" + height="20.907221" + x="51.955002" + y="181.51834" /> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b7dfd;stroke-width:0.55883217;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5096-6-2" + width="117.1069" + height="20.907221" + x="51.691605" + y="205.82234" /> + <rect + y="154.93478" + x="52.003464" + height="20.907221" + width="117.1069" + id="rect5160" + style="fill:url(#linearGradient5466);fill-opacity:1;stroke:#6b8afd;stroke-width:0.55883217;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b78fd;stroke-width:0.55883217;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5162" + width="117.1069" + height="20.907221" + x="52.003464" + y="231.92767" /> + <rect + y="255.45328" + x="52.003464" + height="20.907221" + width="117.1069" + id="rect5164" + style="fill:#daeef5;fill-opacity:1;stroke:#6b6ffd;stroke-width:0.55883217;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.55883217;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166" + width="117.1069" + height="20.907221" + x="52.003464" + y="281.11758" /> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b78fd;stroke-width:0.59729731;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-6" + width="117.0697" + height="23.892008" + x="52.659744" + y="306.01089" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="96.955597" + y="163.55217" + id="text5219-26-1" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="96.955597" + y="163.55217" + id="tspan5223-10-9" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.33980179px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">NIX AF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="96.098343" + y="187.18845" + id="text5219-26-1-1" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="96.098343" + y="187.18845" + id="tspan5223-10-9-4" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.33980179px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">NPA AF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="96.829468" + y="211.79611" + id="text5219-26-1-5" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="96.829468" + y="211.79611" + id="tspan5223-10-9-1" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.33980179px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">SSO AF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="94.770523" + y="235.66898" + id="text5219-26-1-5-7-6" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="94.770523" + y="235.66898" + id="tspan5223-10-9-1-6-8" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.33980179px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">NPC AF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="94.895973" + y="259.25156" + id="text5219-26-1-5-7-6-3" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="94.895973" + y="259.25156" + id="tspan5223-10-9-1-6-8-3" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.33980179px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">CPT AF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="94.645073" + y="282.35391" + id="text5219-26-1-5-7-6-3-0" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="94.645073" + y="282.35391" + id="tspan5223-10-9-1-6-8-3-1" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.33980179px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">RVU AF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.93084431px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.07757032" + x="110.2803" + y="126.02858" + id="text5219-26" + transform="scale(1.0076913,0.9923674)"><tspan + sodipodi:role="line" + x="110.2803" + y="126.02858" + id="tspan5223-10" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.77570343px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:1.07757032">Linux AF driver</tspan><tspan + sodipodi:role="line" + x="110.2803" + y="139.49821" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.77570343px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:1.07757032" + id="tspan5325">(octeontx2_af)</tspan><tspan + sodipodi:role="line" + x="110.2803" + y="152.96783" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.77570343px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:1.07757032" + id="tspan5327">PF0</tspan><tspan + sodipodi:role="line" + x="110.2803" + y="160.38988" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.77570343px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:1.07757032" + id="tspan5329" /></text> + <rect + style="fill:url(#linearGradient5476);fill-opacity:1;stroke:#695400;stroke-width:1.16700006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5468" + width="36.554455" + height="18.169683" + x="49.603416" + y="357.7995" /> + <g + id="g5594" + transform="translate(-18,-40)"> + <text + id="text5480" + y="409.46326" + x="73.41291" + 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:#6a5400;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + style="font-size:8px;fill:#6a5400;fill-opacity:1" + y="409.46326" + x="73.41291" + id="tspan5478" + sodipodi:role="line">CGX-0</tspan></text> + </g> + <rect + style="fill:url(#linearGradient5658);fill-opacity:1;stroke:#695400;stroke-width:1.16700006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5468-2" + width="36.554455" + height="18.169683" + x="92.712852" + y="358.37842" /> + <g + id="g5594-7" + transform="translate(25.109434,2.578931)"> + <text + id="text5480-9" + y="367.46326" + x="73.41291" + 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:#695400;fill-opacity:1;stroke:none" + xml:space="preserve"><tspan + style="font-size:8px;fill:#695400;fill-opacity:1" + y="367.46326" + x="73.41291" + id="tspan5478-0" + sodipodi:role="line">CGX-1</tspan></text> + <text + xml:space="preserve" + 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" + x="104.15788" + y="355.79947" + id="text5711"><tspan + sodipodi:role="line" + id="tspan5709" + x="104.15788" + y="392.29269" /></text> + </g> + <rect + style="opacity:1;fill:url(#linearGradient6997);fill-opacity:1;stroke:#695400;stroke-width:1.16700006;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect5468-2-1" + width="36.554455" + height="18.169683" + x="136.71284" + y="358.37842" /> + <g + id="g5594-7-0" + transform="translate(69.109434,2.578931)"> + <text + id="text5480-9-7" + y="367.46326" + x="73.41291" + 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" + xml:space="preserve"><tspan + style="font-size:8px;fill:#695400;fill-opacity:1" + y="367.46326" + x="73.41291" + id="tspan5478-0-4" + sodipodi:role="line">CGX-2</tspan></text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="116.4436" + y="309.90784" + id="text5219-26-1-5-7-6-3-0-4" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="116.4436" + y="309.90784" + id="tspan5223-10-9-1-6-8-3-1-1" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.33980179px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:1.03398025">CGX-FW Interface</tspan></text> + <path + style="fill:none;stroke:#ff0000;stroke-width:0.45899999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:2.29999995;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" + d="m 65.54286,336.17648 v 23" + id="path7614" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#ff0000;stroke-width:0.45899999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:2.29999995;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart-30);marker-end:url(#Arrow1Mend-6)" + d="m 108.54285,336.67647 v 23" + id="path7614-2" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#ff0000;stroke-width:0.45899999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:2.29999995;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart-30-0);marker-end:url(#Arrow1Mend-6-8)" + d="m 152.54285,336.67647 v 23" + id="path7614-2-2" + inkscape:connector-curvature="0" /> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.50469553;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1" + width="100.27454" + height="105.81976" + x="242.65558" + y="233.7666" /> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.50588065;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-6" + width="100.27335" + height="106.31857" + x="361.40619" + y="233.7672" /> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.50588065;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-6-7" + width="100.27335" + height="106.31857" + x="467.40619" + y="233.7672" /> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.49445513;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-6-7-0" + width="95.784782" + height="106.33" + x="573.40039" + y="233.76149" /> + <path + style="fill:none;stroke:#00ff00;stroke-width:0.984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.984, 0.98400000000000021;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" + d="M 176.02438,304.15296 C 237.06133,305.2 237.06133,305.2 237.06133,305.2" + id="path8315" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="177.04286" + y="299.17648" + id="text8319"><tspan + sodipodi:role="line" + id="tspan8317" + x="177.04286" + y="299.17648" + style="font-size:10.66666698px;line-height:1">AF-PF MBOX</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="291.53308" + y="264.67648" + id="text8323"><tspan + sodipodi:role="line" + id="tspan8321" + x="291.53308" + y="264.67648" + style="font-size:10px;text-align:center;text-anchor:middle"><tspan + style="font-size:10px;fill:#0000ff" + id="tspan8339"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace" + id="tspan11972">Linux</tspan></tspan><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace" + id="tspan11970"> Netdev </tspan><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;fill:#00d4aa" + id="tspan8343">PF</tspan></tspan><tspan + sodipodi:role="line" + x="291.53308" + y="281.34314" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle" + id="tspan8345">driver</tspan><tspan + sodipodi:role="line" + x="291.53308" + y="298.00983" + id="tspan8325" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle">(octeontx2_pf)</tspan><tspan + sodipodi:role="line" + x="291.53308" + y="314.67648" + id="tspan8327" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle">PF<tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ff0000" + id="tspan10511">x</tspan></tspan><tspan + sodipodi:role="line" + x="291.53308" + y="331.34314" + id="tspan8329" /></text> + <flowRoot + xml:space="preserve" + id="flowRoot8331" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:13.33333333px;line-height:1.25;letter-spacing:0px;word-spacing:0px;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal"><flowRegion + id="flowRegion8333"><rect + id="rect8335" + width="48.5" + height="28" + x="252.5" + y="208.34286" /></flowRegion><flowPara + id="flowPara8337" /></flowRoot> <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.37650499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9" + width="71.28923" + height="15.589548" + x="253.89825" + y="320.63168" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="283.97266" + y="319.09348" + id="text5219-26-1-5-7-6-3-0-1" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="283.97266" + y="319.09348" + id="tspan5223-10-9-1-6-8-3-1-0" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">NIX LF</tspan></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.37650499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-7" + width="71.28923" + height="15.589548" + x="255.89822" + y="237.88171" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="285.03787" + y="239.81017" + id="text5219-26-1-5-7-6-3-0-1-4" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="285.03787" + y="239.81017" + id="tspan5223-10-9-1-6-8-3-1-0-8" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">NPA LF</tspan></text> + <path + style="fill:none;stroke:#ff0000;stroke-width:0.41014698;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:2.29999995;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart-30-0-9);marker-end:url(#Arrow1Mend-6-8-3)" + d="m 287.54285,340.99417 v 18.3646" + id="path7614-2-2-8" + inkscape:connector-curvature="0" /> + <rect + style="opacity:1;fill:url(#linearGradient6997-8);fill-opacity:1;stroke:#695400;stroke-width:1.316;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect5468-2-1-4" + width="81.505402" + height="17.62063" + x="251.04015" + y="359.86615" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="263.46152" + y="224.99915" + id="text8319-7"><tspan + sodipodi:role="line" + id="tspan8317-7" + x="263.46152" + y="224.99915" + style="font-size:10.66666698px;line-height:1">PF-VF MBOX</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="259.23218" + y="371.46179" + id="text8319-7-7"><tspan + sodipodi:role="line" + id="tspan8317-7-3" + x="259.23218" + y="371.46179" + style="font-size:9.33333302px;line-height:1">CGX-x LMAC-y</tspan></text> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.42349124;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-6-3" + width="80.855743" + height="92.400963" + x="197.86496" + y="112.97599" /> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.42349124;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-6-3-4" + width="80.855743" + height="92.400963" + x="286.61499" + y="112.476" /> + <path + style="fill:none;stroke:#580000;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.3, 0.3;stroke-dashoffset:0;stroke-opacity:1" + d="m 188.04286,109.67648 c 2.5,238.5 2,238 2,238 163.49999,0.5 163.49999,0.5 163.49999,0.5 v -124 l -70,0.5 -1.5,-116 v 1.5 z" + id="path9240" + inkscape:connector-curvature="0" /> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.42349124;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-6-3-4-0" + width="80.855743" + height="92.400963" + x="375.11499" + y="111.976" /> + <rect + style="fill:#d6eaf8;fill-opacity:1;stroke:#6ba6fd;stroke-width:0.42349124;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5066-1-6-3-4-0-0" + width="80.855743" + height="92.400963" + x="586.61499" + y="111.476" /> + <path + style="fill:none;stroke:#ff00cc;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:7.2, 0.29999999999999999;stroke-dashoffset:0" + d="m 675.54284,107.17648 1,239.5 -317.99999,0.5 -1,-125 14.5,0.5 -0.5,-113.5 z" + id="path9272" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00ffff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:7.2,0.3;stroke-dashoffset:0" + d="m 284.54285,109.17648 0.5,100 84,-0.5 v -99.5 z" + id="path9274" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.82769489px;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.81207716" + x="231.87221" + y="146.02637" + id="text8323-1" + transform="scale(1.0315378,0.96942639)"><tspan + sodipodi:role="line" + id="tspan8321-2" + x="231.87221" + y="146.02637" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"><tspan + style="font-size:8.12077141px;fill:#0000ff;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan8339-6">Linux</tspan> Netdev <tspan + style="fill:#0066ff;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan9396">VF</tspan></tspan><tspan + sodipodi:role="line" + x="231.87221" + y="159.56099" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan8345-6">driver</tspan><tspan + sodipodi:role="line" + x="231.87221" + y="173.09561" + id="tspan8325-2" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">(octeontx2_vf)</tspan><tspan + sodipodi:role="line" + x="231.87221" + y="186.63022" + id="tspan8327-7" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">PF<tspan + style="fill:#782121;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan10513">x</tspan><tspan + style="font-size:8.12077141px;fill:#782121;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan8347-1">-VF0</tspan></tspan><tspan + sodipodi:role="line" + x="231.87221" + y="200.16484" + id="tspan8329-3" + style="stroke-width:0.81207716;fill:#782121" /></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.30575109;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-9" + width="59.718147" + height="12.272857" + x="207.65872" + y="185.61246" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.0760603px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.83967167" + x="225.56583" + y="192.49615" + id="text5219-26-1-5-7-6-3-0-1-6" + transform="scale(0.99742277,1.0025839)"><tspan + sodipodi:role="line" + x="225.56583" + y="192.49615" + id="tspan5223-10-9-1-6-8-3-1-0-5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.57938623px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.83967167">NIX LF</tspan></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.30575109;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-7-5" + width="59.718147" + height="12.272857" + x="209.33406" + y="116.46765" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.0760603px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.83967167" + x="226.43088" + y="124.1223" + id="text5219-26-1-5-7-6-3-0-1-4-7" + transform="scale(0.99742276,1.0025839)"><tspan + sodipodi:role="line" + x="226.43088" + y="124.1223" + id="tspan5223-10-9-1-6-8-3-1-0-8-0" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.57938623px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.83967167">NPA LF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.82769489px;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.81207716" + x="317.66635" + y="121.26925" + id="text8323-1-9" + transform="scale(1.0315378,0.96942642)"><tspan + sodipodi:role="line" + id="tspan8321-2-3" + x="317.66635" + y="131.14769" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716" /><tspan + sodipodi:role="line" + x="317.66635" + y="144.6823" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan9400"><tspan + style="fill:#ff2a2a;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan9402">DPDK</tspan> Ethdev <tspan + style="fill:#0066ff;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan9398">VF</tspan></tspan><tspan + sodipodi:role="line" + x="317.66635" + y="158.21692" + id="tspan8325-2-7" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">driver</tspan><tspan + sodipodi:role="line" + x="317.66635" + y="171.75154" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan9392" /><tspan + sodipodi:role="line" + x="317.66635" + y="185.28616" + id="tspan8327-7-8" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">PF<tspan + style="fill:#782121;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan10515">x</tspan><tspan + style="font-size:8.12077141px;fill:#782121;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan8347-1-0">-VF1</tspan></tspan><tspan + sodipodi:role="line" + x="317.66635" + y="198.82077" + id="tspan8329-3-3" + style="stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" /></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.30575109;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-9-3" + width="59.718147" + height="12.272857" + x="295.65872" + y="185.11246" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.0760603px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.83967167" + x="313.79312" + y="191.99756" + id="text5219-26-1-5-7-6-3-0-1-6-1" + transform="scale(0.99742276,1.0025839)"><tspan + sodipodi:role="line" + x="313.79312" + y="191.99756" + id="tspan5223-10-9-1-6-8-3-1-0-5-5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.57938623px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.83967167">NIX LF</tspan></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.30575109;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-7-5-8" + width="59.718147" + height="12.272857" + x="297.33408" + y="115.96765" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.0760603px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.83967167" + x="314.65817" + y="123.62372" + id="text5219-26-1-5-7-6-3-0-1-4-7-9" + transform="scale(0.99742276,1.0025839)"><tspan + sodipodi:role="line" + x="314.65817" + y="123.62372" + id="tspan5223-10-9-1-6-8-3-1-0-8-0-9" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.57938623px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.83967167">NPA LF</tspan></text> + <path + style="fill:none;stroke:#00ff00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#Arrow1Mstart);marker-start:url(#Arrow1Mstart)" + d="m 254.54285,205.17648 c 1,29 1,28.5 1,28.5" + id="path9405" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00ff00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow1Mstart-1);marker-end:url(#Arrow1Mstart-1)" + d="m 324.42292,203.92589 c 1,29 1,28.5 1,28.5" + id="path9405-3" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="408.28308" + y="265.83011" + id="text8323-7"><tspan + sodipodi:role="line" + id="tspan8321-3" + x="408.28308" + y="265.83011" + style="font-size:10px;text-align:center;text-anchor:middle;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"><tspan + style="fill:#ff2a2a;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan10440">DPDK</tspan> Ethdev <tspan + style="font-size:10px;fill:#00d4aa;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan8343-5">PF</tspan></tspan><tspan + sodipodi:role="line" + x="408.28308" + y="282.49677" + style="font-size:10px;text-align:center;text-anchor:middle;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan8345-8">driver</tspan><tspan + sodipodi:role="line" + x="408.28308" + y="299.16345" + id="tspan8325-5" + style="font-size:10px;text-align:center;text-anchor:middle;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" /><tspan + sodipodi:role="line" + x="408.28308" + y="315.83011" + id="tspan8327-1" + style="font-size:10px;text-align:center;text-anchor:middle;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">PF<tspan + style="fill:#ff0000;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan10517">y</tspan></tspan><tspan + sodipodi:role="line" + x="408.28308" + y="332.49677" + id="tspan8329-2" /></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.37650499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-3" + width="71.28923" + height="15.589548" + x="376.64825" + y="319.78531" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="410.92075" + y="318.27411" + id="text5219-26-1-5-7-6-3-0-1-62" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="410.92075" + y="318.27411" + id="tspan5223-10-9-1-6-8-3-1-0-4" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">NIX LF</tspan></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.37650499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-7-2" + width="71.28923" + height="15.589548" + x="378.64822" + y="237.03534" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="411.98596" + y="238.99095" + id="text5219-26-1-5-7-6-3-0-1-4-4" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="411.98596" + y="238.99095" + id="tspan5223-10-9-1-6-8-3-1-0-8-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">NPA LF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="386.21152" + y="224.15277" + id="text8319-7-5"><tspan + sodipodi:role="line" + id="tspan8317-7-8" + x="386.21152" + y="224.15277" + style="font-size:10.66666698px;line-height:1">PF-VF MBOX</tspan></text> + <path + style="fill:none;stroke:#00ff00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow1Mstart-48);marker-end:url(#Arrow1Mstart-48)" + d="m 411.29285,204.33011 c 1,29 1,28.5 1,28.5" + id="path9405-0" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="520.61176" + y="265.49265" + id="text8323-7-8"><tspan + sodipodi:role="line" + id="tspan8321-3-3" + x="520.61176" + y="265.49265" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ff2a2a" + id="tspan10440-2">DPDK</tspan> Eventdev <tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;fill:#00d4aa" + id="tspan8343-5-3">PF</tspan></tspan><tspan + sodipodi:role="line" + x="520.61176" + y="282.1593" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle" + id="tspan8345-8-6">driver</tspan><tspan + sodipodi:role="line" + x="520.61176" + y="298.82599" + id="tspan8325-5-4" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle" /><tspan + sodipodi:role="line" + x="520.61176" + y="315.49265" + id="tspan8327-1-0" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle">PF<tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ff0000" + id="tspan10519">z</tspan></tspan><tspan + sodipodi:role="line" + x="520.61176" + y="332.1593" + id="tspan8329-2-1" /></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.37650499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-3-6" + width="71.28923" + height="15.589548" + x="484.97693" + y="319.44785" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="522.95496" + y="317.94733" + id="text5219-26-1-5-7-6-3-0-1-62-1" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="522.95496" + y="317.94733" + id="tspan5223-10-9-1-6-8-3-1-0-4-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">TIM LF</tspan></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.37650499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-7-2-8" + width="71.28923" + height="15.589548" + x="486.9769" + y="236.69788" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.40776253px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03398025" + x="524.0202" + y="238.66432" + id="text5219-26-1-5-7-6-3-0-1-4-4-3" + transform="scale(0.96692797,1.0342032)"><tspan + sodipodi:role="line" + x="524.0202" + y="238.66432" + id="tspan5223-10-9-1-6-8-3-1-0-8-7-6" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:1.03398025">SSO LF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="619.6156" + y="265.47531" + id="text8323-7-8-3"><tspan + sodipodi:role="line" + id="tspan8321-3-3-1" + x="619.6156" + y="265.47531" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle"> <tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#0000ff" + id="tspan10562">Linux </tspan>Crypto <tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;fill:#00d4aa" + id="tspan8343-5-3-7">PF</tspan></tspan><tspan + sodipodi:role="line" + x="619.6156" + y="282.14197" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle" + id="tspan8345-8-6-8">driver</tspan><tspan + sodipodi:role="line" + x="619.6156" + y="298.80865" + id="tspan8325-5-4-3" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle" /><tspan + sodipodi:role="line" + x="619.6156" + y="315.47531" + id="tspan8327-1-0-5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle">PF<tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ff0000" + id="tspan10560">m</tspan></tspan><tspan + sodipodi:role="line" + x="619.6156" + y="332.14197" + id="tspan8329-2-1-9" /></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.30575109;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-9-3-0" + width="59.718147" + height="12.272857" + x="385.10458" + y="183.92126" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.0760603px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.83967167" + x="403.46997" + y="190.80957" + id="text5219-26-1-5-7-6-3-0-1-6-1-5" + transform="scale(0.99742276,1.0025839)"><tspan + sodipodi:role="line" + x="403.46997" + y="190.80957" + id="tspan5223-10-9-1-6-8-3-1-0-5-5-5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.57938623px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.83967167">NIX LF</tspan></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.30575109;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-7-5-8-5" + width="59.718147" + height="12.272857" + x="386.77994" + y="116.77647" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.0760603px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.83967167" + x="404.33502" + y="124.43062" + id="text5219-26-1-5-7-6-3-0-1-4-7-9-8" + transform="scale(0.99742276,1.0025839)"><tspan + sodipodi:role="line" + x="404.33502" + y="124.43062" + id="tspan5223-10-9-1-6-8-3-1-0-8-0-9-8" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.57938623px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.83967167">NPA LF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.82769489px;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.81207716" + x="402.97598" + y="143.8235" + id="text8323-1-7" + transform="scale(1.0315378,0.96942642)"><tspan + sodipodi:role="line" + id="tspan8321-2-1" + x="402.97598" + y="143.8235" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"><tspan + style="fill:#ff2a2a;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan11102">DPDK</tspan> Ethdev <tspan + style="fill:#0066ff;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan9396-1">VF</tspan></tspan><tspan + sodipodi:role="line" + x="402.97598" + y="157.35812" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan8345-6-5">driver</tspan><tspan + sodipodi:role="line" + x="402.97598" + y="170.89275" + id="tspan8327-7-2" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" /><tspan + sodipodi:role="line" + x="402.97598" + y="184.42735" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan11106">PF<tspan + style="fill:#a02c2c;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan11110">y</tspan><tspan + style="font-size:8.12077141px;fill:#a02c2c;stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan8347-1-2">-VF0</tspan></tspan><tspan + sodipodi:role="line" + x="402.97598" + y="197.96198" + id="tspan8329-3-4" + style="stroke-width:0.81207716;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" /></text> + <rect + style="fill:#daeef5;fill-opacity:1;stroke:#6b86fd;stroke-width:0.30575109;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5166-9-9-3-0-0" + width="59.718147" + height="12.272857" + x="596.60461" + y="185.11246" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.0760603px;line-height:0%;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.83967167" + x="615.51703" + y="191.99774" + id="text5219-26-1-5-7-6-3-0-1-6-1-5-1" + transform="scale(0.99742276,1.0025839)"><tspan + sodipodi:role="line" + x="615.51703" + y="191.99774" + id="tspan5223-10-9-1-6-8-3-1-0-5-5-5-2" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.57938623px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.83967167">CPT LF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.82769489px;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.81207716" + x="608.00879" + y="145.05219" + id="text8323-1-7-3" + transform="scale(1.0315378,0.96942642)"><tspan + sodipodi:role="line" + id="tspan8321-2-1-5" + x="608.00879" + y="145.05219" + style="font-size:8.12077141px;text-align:center;text-anchor:middle;stroke-width:0.81207716"><tspan + id="tspan1793" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ff2a2a">DPDK</tspan><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace" + id="tspan11966"> Crypto </tspan><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#0066ff" + id="tspan9396-1-1">VF</tspan></tspan><tspan + sodipodi:role="line" + x="608.00879" + y="158.58681" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.12077141px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.81207716" + id="tspan8345-6-5-4">driver</tspan><tspan + sodipodi:role="line" + x="608.00879" + y="172.12143" + id="tspan8327-7-2-1" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.12077141px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.81207716" /><tspan + sodipodi:role="line" + x="608.00879" + y="185.65604" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.12077141px;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.81207716" + id="tspan11106-8">PF<tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#c83737" + id="tspan11172">m</tspan><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.12077141px;font-family:monospace;-inkscape-font-specification:monospace;fill:#c83737;stroke-width:0.81207716" + id="tspan8347-1-2-0">-VF0</tspan></tspan><tspan + sodipodi:role="line" + x="608.00879" + y="199.19066" + id="tspan8329-3-4-0" + style="stroke-width:0.81207716" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="603.23218" + y="224.74855" + id="text8319-7-5-1"><tspan + sodipodi:role="line" + id="tspan8317-7-8-4" + x="603.23218" + y="224.74855" + style="font-size:10.66666698px;line-height:1">PF-VF MBOX</tspan></text> + <path + style="fill:none;stroke:#00ff00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow1Mstart-48-6);marker-end:url(#Arrow1Mstart-48-6)" + d="m 628.31351,204.92589 c 1,29 1,28.5 1,28.5" + id="path9405-0-2" + inkscape:connector-curvature="0" /> + <flowRoot + xml:space="preserve" + id="flowRoot11473" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + transform="translate(46.542857,100.33361)"><flowRegion + id="flowRegion11475"><rect + id="rect11477" + width="90" + height="14.5" + x="426" + y="26.342873" /></flowRegion><flowPara + id="flowPara11479">DDDpk</flowPara></flowRoot> <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="509.60013" + y="128.17648" + id="text11483"><tspan + sodipodi:role="line" + id="tspan11481" + x="511.47513" + y="128.17648" + style="font-size:8px;text-align:center;text-anchor:middle;fill:#005544">D<tspan + style="-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#005544" + id="tspan11962">PDK-APP1 with </tspan></tspan><tspan + sodipodi:role="line" + x="511.47513" + y="144.84315" + style="font-size:8px;text-align:center;text-anchor:middle;fill:#005544;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan11485">one ethdev </tspan><tspan + sodipodi:role="line" + x="509.60013" + y="161.50981" + style="font-size:8px;text-align:center;text-anchor:middle;fill:#005544;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan11491">over Linux PF</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="533.54285" + y="158.17648" + id="text11489"><tspan + sodipodi:role="line" + id="tspan11487" + x="533.54285" + y="170.34088" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;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" + x="518.02197" + y="179.98117" + id="text11483-6"><tspan + sodipodi:role="line" + id="tspan11481-4" + x="519.42822" + y="179.98117" + style="font-size:8px;text-align:center;text-anchor:middle;fill:#ff2a2a;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">DPDK-APP2 with </tspan><tspan + sodipodi:role="line" + x="518.02197" + y="196.64784" + style="font-size:8px;text-align:center;text-anchor:middle;fill:#ff2a2a;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan11485-5">Two ethdevs(PF,VF) ,</tspan><tspan + sodipodi:role="line" + x="518.02197" + y="213.3145" + style="font-size:8px;text-align:center;text-anchor:middle;fill:#ff2a2a;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan11517">eventdev, timer adapter and</tspan><tspan + sodipodi:role="line" + x="518.02197" + y="229.98117" + style="font-size:8px;text-align:center;text-anchor:middle;fill:#ff2a2a;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="tspan11519"> cryptodev</tspan><tspan + sodipodi:role="line" + x="518.02197" + y="246.64784" + style="font-size:10.66666698px;text-align:center;text-anchor:middle;fill:#00ffff" + id="tspan11491-6" /></text> + <path + style="fill:#005544;stroke:#00ffff;stroke-width:1.02430511;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.02430516, 4.09722065999999963;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mstart-8)" + d="m 483.99846,150.16496 -112.95349,13.41069 v 0 l -0.48897,-0.53643 h 0.48897" + id="path11521" + inkscape:connector-curvature="0" /> + <path + style="fill:#ff0000;stroke:#ff5555;stroke-width:1.16440296;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.16440301, 2.32880602999999997;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mend-0)" + d="m 545.54814,186.52569 c 26.3521,-76.73875 26.3521,-76.73875 26.3521,-76.73875" + id="path11523" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#ff0000;stroke-width:0.41014698;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:2.29999995;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart-30-0-9-0);marker-end:url(#Arrow1Mend-6-8-3-7)" + d="m 409.29286,341.50531 v 18.3646" + id="path7614-2-2-8-2" + inkscape:connector-curvature="0" /> + <rect + style="opacity:1;fill:url(#linearGradient6997-8-0);fill-opacity:1;stroke:#695400;stroke-width:1.31599998;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect5468-2-1-4-9" + width="81.505402" + height="17.62063" + x="372.79016" + y="360.37729" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="380.98218" + y="371.97293" + id="text8319-7-7-1"><tspan + sodipodi:role="line" + id="tspan8317-7-3-1" + x="380.98218" + y="371.97293" + style="font-size:9.33333302px;line-height:1">CGX-x LMAC-y</tspan></text> + </g> +</svg> diff --git a/src/spdk/dpdk/doc/guides/platform/index.rst b/src/spdk/dpdk/doc/guides/platform/index.rst new file mode 100644 index 000000000..f454ef877 --- /dev/null +++ b/src/spdk/dpdk/doc/guides/platform/index.rst @@ -0,0 +1,17 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2017 Cavium, Inc + +Platform Specific Guides +======================== + +The following are platform specific guides and setup information. + +.. toctree:: + :maxdepth: 2 + :numbered: + + bluefield + dpaa + dpaa2 + octeontx + octeontx2 diff --git a/src/spdk/dpdk/doc/guides/platform/octeontx.rst b/src/spdk/dpdk/doc/guides/platform/octeontx.rst new file mode 100644 index 000000000..7d1cb647d --- /dev/null +++ b/src/spdk/dpdk/doc/guides/platform/octeontx.rst @@ -0,0 +1,161 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2017 Cavium, Inc + +OCTEON TX Board Support Package +=============================== + +This doc has information about steps to setup OCTEON TX platform +and information about common offload hw block drivers of +**Cavium OCTEON TX** SoC family. + + +More information about SoC can be found at `Cavium, Inc Official Website +<http://www.cavium.com/OCTEON-TX_ARM_Processors.html>`_. + +Common Offload HW Block Drivers +------------------------------- + +1. **Crypto Driver** + See :doc:`../cryptodevs/octeontx` for octeontx crypto driver + information. + +2. **Eventdev Driver** + See :doc:`../eventdevs/octeontx` for octeontx ssovf eventdev driver + information. + +3. **Mempool Driver** + See :doc:`../mempool/octeontx` for octeontx fpavf mempool driver + information. + +Steps To Setup Platform +----------------------- + +There are three main pre-prerequisites for setting up Platform drivers on +OCTEON TX compatible board: + +1. **OCTEON TX Linux kernel PF driver for Network acceleration HW blocks** + + The OCTEON TX Linux kernel drivers (includes the required PF driver for the + Platform drivers) are available on Github at `octeontx-kmod <https://github.com/caviumnetworks/octeontx-kmod>`_ + along with build, install and dpdk usage instructions. + +.. note:: + + The PF driver and the required microcode for the crypto offload block will be + available with OCTEON TX SDK only. So for using crypto offload, follow the steps + mentioned in :ref:`setup_platform_using_OCTEON_TX_SDK`. + +2. **ARM64 Tool Chain** + + For example, the *aarch64* Linaro Toolchain, which can be obtained from + `here <https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/aarch64-linux-gnu>`_. + +3. **Rootfile system** + + Any *aarch64* supporting filesystem can be used. For example, + Ubuntu 15.10 (Wily) or 16.04 LTS (Xenial) userland which can be obtained + from `<http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04.1-base-arm64.tar.gz>`_. + + As an alternative method, Platform drivers can also be executed using images provided + as part of SDK from Cavium. The SDK includes all the above prerequisites necessary + to bring up a OCTEON TX board. Please refer :ref:`setup_platform_using_OCTEON_TX_SDK`. + +- Follow the DPDK :doc:`../linux_gsg/index` to setup the basic DPDK environment. + +.. _setup_platform_using_OCTEON_TX_SDK: + +Setup Platform Using OCTEON TX SDK +---------------------------------- + +The OCTEON TX platform drivers can be compiled either natively on +**OCTEON TX** :sup:`®` board or cross-compiled on an x86 based platform. + +The **OCTEON TX** :sup:`®` board must be running the linux kernel based on +OCTEON TX SDK 6.2.0 patch 3. In this, the PF drivers for all hardware +offload blocks are already built in. + +Native Compilation +~~~~~~~~~~~~~~~~~~ + +If the kernel and modules are cross-compiled and copied to the target board, +some intermediate binaries required for native build would be missing on the +target board. To make sure all the required binaries are available in the +native architecture, the linux sources need to be compiled once natively. + +.. code-block:: console + + cd /lib/modules/$(uname -r)/source + make menuconfig + make + +The above steps would rebuild the modules and the required intermediate binaries. +Once the target is ready for native compilation, the OCTEON TX platform +drivers can be compiled with the following steps, + +.. code-block:: console + + cd <dpdk directory> + make config T=arm64-thunderx-linux-gcc + make + +The example applications can be compiled using the following: + +.. code-block:: console + + cd <dpdk directory> + export RTE_SDK=$PWD + export RTE_TARGET=build + cd examples/<application> + make + +Cross Compilation +~~~~~~~~~~~~~~~~~ + +The DPDK applications can be cross-compiled on any x86 based platform. The +OCTEON TX SDK need to be installed on the build system. The SDK package will +provide the required toolchain etc. + +Refer to :doc:`../linux_gsg/cross_build_dpdk_for_arm64` for further steps on +compilation. The 'host' & 'CC' to be used in the commands would change, +in addition to the paths to which libnuma related files have to be +copied. + +The following steps can be used to perform cross-compilation with OCTEON TX +SDK 6.2.0 patch 3: + +.. code-block:: console + + cd <sdk_install_dir> + source env-setup + + git clone https://github.com/numactl/numactl.git + cd numactl + git checkout v2.0.11 -b v2.0.11 + ./autogen.sh + autoconf -i + ./configure --host=aarch64-thunderx-linux CC=aarch64-thunderx-linux-gnu-gcc --prefix=<numa install dir> + make install + +The above steps will prepare build system with numa additions. Now this build system can be used +to build applications for **OCTEON TX** :sup:`®` platforms. + +.. code-block:: console + + cd <dpdk directory> + export RTE_SDK=$PWD + export RTE_KERNELDIR=$THUNDER_ROOT/linux/kernel/linux + make config T=arm64-thunderx-linux-gcc + make -j CROSS=aarch64-thunderx-linux-gnu- CONFIG_RTE_KNI_KMOD=n CONFIG_RTE_EAL_IGB_UIO=n EXTRA_CFLAGS="-isystem <numa_install_dir>/include" EXTRA_LDFLAGS="-L<numa_install_dir>/lib -lnuma" + +If NUMA support is not required, it can be disabled as explained in +:doc:`../linux_gsg/cross_build_dpdk_for_arm64`. + +Following steps could be used in that case. + +.. code-block:: console + + make config T=arm64-thunderx-linux-gcc + make CROSS=aarch64-thunderx-linux-gnu- + + +SDK and related information can be obtained from: `Cavium support site <https://support.cavium.com/>`_. diff --git a/src/spdk/dpdk/doc/guides/platform/octeontx2.rst b/src/spdk/dpdk/doc/guides/platform/octeontx2.rst new file mode 100644 index 000000000..15b1641cf --- /dev/null +++ b/src/spdk/dpdk/doc/guides/platform/octeontx2.rst @@ -0,0 +1,552 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2019 Marvell International Ltd. + +Marvell OCTEON TX2 Platform Guide +================================= + +This document gives an overview of **Marvell OCTEON TX2** RVU H/W block, +packet flow and procedure to build DPDK on OCTEON TX2 platform. + +More information about OCTEON TX2 SoC can be found at `Marvell Official Website +<https://www.marvell.com/embedded-processors/infrastructure-processors/>`_. + +Supported OCTEON TX2 SoCs +------------------------- + +- CN96xx +- CN93xx + +OCTEON TX2 Resource Virtualization Unit architecture +---------------------------------------------------- + +The :numref:`figure_octeontx2_resource_virtualization` diagram depicts the +RVU architecture and a resource provisioning example. + +.. _figure_octeontx2_resource_virtualization: + +.. figure:: img/octeontx2_resource_virtualization.* + + OCTEON TX2 Resource virtualization architecture and provisioning example + + +Resource Virtualization Unit (RVU) on Marvell's OCTEON TX2 SoC maps HW +resources belonging to the network, crypto and other functional blocks onto +PCI-compatible physical and virtual functions. + +Each functional block has multiple local functions (LFs) for +provisioning to different PCIe devices. RVU supports multiple PCIe SRIOV +physical functions (PFs) and virtual functions (VFs). + +The :numref:`table_octeontx2_rvu_dpdk_mapping` shows the various local +functions (LFs) provided by the RVU and its functional mapping to +DPDK subsystem. + +.. _table_octeontx2_rvu_dpdk_mapping: + +.. table:: RVU managed functional blocks and its mapping to DPDK subsystem + + +---+-----+--------------------------------------------------------------+ + | # | LF | DPDK subsystem mapping | + +===+=====+==============================================================+ + | 1 | NIX | rte_ethdev, rte_tm, rte_event_eth_[rt]x_adapter, rte_security| + +---+-----+--------------------------------------------------------------+ + | 2 | NPA | rte_mempool | + +---+-----+--------------------------------------------------------------+ + | 3 | NPC | rte_flow | + +---+-----+--------------------------------------------------------------+ + | 4 | CPT | rte_cryptodev, rte_event_crypto_adapter | + +---+-----+--------------------------------------------------------------+ + | 5 | SSO | rte_eventdev | + +---+-----+--------------------------------------------------------------+ + | 6 | TIM | rte_event_timer_adapter | + +---+-----+--------------------------------------------------------------+ + | 7 | LBK | rte_ethdev | + +---+-----+--------------------------------------------------------------+ + | 8 | DPI | rte_rawdev | + +---+-----+--------------------------------------------------------------+ + | 9 | SDP | rte_ethdev | + +---+-----+--------------------------------------------------------------+ + +PF0 is called the administrative / admin function (AF) and has exclusive +privileges to provision RVU functional block's LFs to each of the PF/VF. + +PF/VFs communicates with AF via a shared memory region (mailbox).Upon receiving +requests from PF/VF, AF does resource provisioning and other HW configuration. + +AF is always attached to host, but PF/VFs may be used by host kernel itself, +or attached to VMs or to userspace applications like DPDK, etc. So, AF has to +handle provisioning/configuration requests sent by any device from any domain. + +The AF driver does not receive or process any data. +It is only a configuration driver used in control path. + +The :numref:`figure_octeontx2_resource_virtualization` diagram also shows a +resource provisioning example where, + +1. PFx and PFx-VF0 bound to Linux netdev driver. +2. PFx-VF1 ethdev driver bound to the first DPDK application. +3. PFy ethdev driver, PFy-VF0 ethdev driver, PFz eventdev driver, PFm-VF0 cryptodev driver bound to the second DPDK application. + +LBK HW Access +------------- + +Loopback HW Unit (LBK) receives packets from NIX-RX and sends packets back to NIX-TX. +The loopback block has N channels and contains data buffering that is shared across +all channels. The LBK HW Unit is abstracted using ethdev subsystem, Where PF0's +VFs are exposed as ethdev device and odd-even pairs of VFs are tied together, +that is, packets sent on odd VF end up received on even VF and vice versa. +This would enable HW accelerated means of communication between two domains +where even VF bound to the first domain and odd VF bound to the second domain. + +Typical application usage models are, + +#. Communication between the Linux kernel and DPDK application. +#. Exception path to Linux kernel from DPDK application as SW ``KNI`` replacement. +#. Communication between two different DPDK applications. + +SDP interface +------------- + +System DPI Packet Interface unit(SDP) provides PCIe endpoint support for remote host +to DMA packets into and out of OCTEON TX2 SoC. SDP interface comes in to live only when +OCTEON TX2 SoC is connected in PCIe endpoint mode. It can be used to send/receive +packets to/from remote host machine using input/output queue pairs exposed to it. +SDP interface receives input packets from remote host from NIX-RX and sends packets +to remote host using NIX-TX. Remote host machine need to use corresponding driver +(kernel/user mode) to communicate with SDP interface on OCTEON TX2 SoC. SDP supports +single PCIe SRIOV physical function(PF) and multiple virtual functions(VF's). Users +can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports. + +The primary use case for SDP is to enable the smart NIC use case. Typical usage models are, + +#. Communication channel between remote host and OCTEON TX2 SoC over PCIe. +#. Transfer packets received from network interface to remote host over PCIe and + vice-versa. + +OCTEON TX2 packet flow +---------------------- + +The :numref:`figure_octeontx2_packet_flow_hw_accelerators` diagram depicts +the packet flow on OCTEON TX2 SoC in conjunction with use of various HW accelerators. + +.. _figure_octeontx2_packet_flow_hw_accelerators: + +.. figure:: img/octeontx2_packet_flow_hw_accelerators.* + + OCTEON TX2 packet flow in conjunction with use of HW accelerators + +HW Offload Drivers +------------------ + +This section lists dataplane H/W block(s) available in OCTEON TX2 SoC. + +#. **Ethdev Driver** + See :doc:`../nics/octeontx2` for NIX Ethdev driver information. + +#. **Mempool Driver** + See :doc:`../mempool/octeontx2` for NPA mempool driver information. + +#. **Event Device Driver** + See :doc:`../eventdevs/octeontx2` for SSO event device driver information. + +#. **DMA Rawdev Driver** + See :doc:`../rawdevs/octeontx2_dma` for DMA driver information. + +#. **Crypto Device Driver** + See :doc:`../cryptodevs/octeontx2` for CPT crypto device driver information. + +Procedure to Setup Platform +--------------------------- + +There are three main prerequisites for setting up DPDK on OCTEON TX2 +compatible board: + +1. **OCTEON TX2 Linux kernel driver** + + The dependent kernel drivers can be obtained from the + `kernel.org <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/marvell/octeontx2>`_. + + Alternatively, the Marvell SDK also provides the required kernel drivers. + + Linux kernel should be configured with the following features enabled: + +.. code-block:: console + + # 64K pages enabled for better performance + CONFIG_ARM64_64K_PAGES=y + CONFIG_ARM64_VA_BITS_48=y + # huge pages support enabled + CONFIG_HUGETLBFS=y + CONFIG_HUGETLB_PAGE=y + # VFIO enabled with TYPE1 IOMMU at minimum + CONFIG_VFIO_IOMMU_TYPE1=y + CONFIG_VFIO_VIRQFD=y + CONFIG_VFIO=y + CONFIG_VFIO_NOIOMMU=y + CONFIG_VFIO_PCI=y + CONFIG_VFIO_PCI_MMAP=y + # SMMUv3 driver + CONFIG_ARM_SMMU_V3=y + # ARMv8.1 LSE atomics + CONFIG_ARM64_LSE_ATOMICS=y + # OCTEONTX2 drivers + CONFIG_OCTEONTX2_MBOX=y + CONFIG_OCTEONTX2_AF=y + # Enable if netdev PF driver required + CONFIG_OCTEONTX2_PF=y + # Enable if netdev VF driver required + CONFIG_OCTEONTX2_VF=y + CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=y + # Enable if OCTEONTX2 DMA PF driver required + CONFIG_OCTEONTX2_DPI_PF=n + +2. **ARM64 Linux Tool Chain** + + For example, the *aarch64* Linaro Toolchain, which can be obtained from + `here <https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/>`_. + + Alternatively, the Marvell SDK also provides GNU GCC toolchain, which is + optimized for OCTEON TX2 CPU. + +3. **Rootfile system** + + Any *aarch64* supporting filesystem may be used. For example, + Ubuntu 15.10 (Wily) or 16.04 LTS (Xenial) userland which can be obtained + from `<http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04.1-base-arm64.tar.gz>`_. + + Alternatively, the Marvell SDK provides the buildroot based root filesystem. + The SDK includes all the above prerequisites necessary to bring up the OCTEON TX2 board. + +- Follow the DPDK :doc:`../linux_gsg/index` to setup the basic DPDK environment. + + +Debugging Options +----------------- + +.. _table_octeontx2_common_debug_options: + +.. table:: OCTEON TX2 common debug options + + +---+------------+-------------------------------------------------------+ + | # | Component | EAL log command | + +===+============+=======================================================+ + | 1 | Common | --log-level='pmd\.octeontx2\.base,8' | + +---+------------+-------------------------------------------------------+ + | 2 | Mailbox | --log-level='pmd\.octeontx2\.mbox,8' | + +---+------------+-------------------------------------------------------+ + +Debugfs support +~~~~~~~~~~~~~~~ + +The **OCTEON TX2 Linux kernel driver** provides support to dump RVU blocks +context or stats using debugfs. + +Enable ``debugfs`` by: + +1. Compile kernel with debugfs enabled, i.e ``CONFIG_DEBUGFS=y``. +2. Boot OCTEON TX2 with debugfs supported kernel. +3. Verify ``debugfs`` mounted by default "mount | grep -i debugfs" or mount it manually by using. + +.. code-block:: console + + # mount -t debugfs none /sys/kernel/debug + +Currently ``debugfs`` supports the following RVU blocks NIX, NPA, NPC, NDC, +SSO & CGX. + +The file structure under ``/sys/kernel/debug`` is as follows + +.. code-block:: console + + octeontx2/ + |-- cgx + | |-- cgx0 + | | '-- lmac0 + | | '-- stats + | |-- cgx1 + | | |-- lmac0 + | | | '-- stats + | | '-- lmac1 + | | '-- stats + | '-- cgx2 + | '-- lmac0 + | '-- stats + |-- cpt + | |-- cpt_engines_info + | |-- cpt_engines_sts + | |-- cpt_err_info + | |-- cpt_lfs_info + | '-- cpt_pc + |---- nix + | |-- cq_ctx + | |-- ndc_rx_cache + | |-- ndc_rx_hits_miss + | |-- ndc_tx_cache + | |-- ndc_tx_hits_miss + | |-- qsize + | |-- rq_ctx + | |-- sq_ctx + | '-- tx_stall_hwissue + |-- npa + | |-- aura_ctx + | |-- ndc_cache + | |-- ndc_hits_miss + | |-- pool_ctx + | '-- qsize + |-- npc + | |-- mcam_info + | '-- rx_miss_act_stats + |-- rsrc_alloc + '-- sso + |-- hws + | '-- sso_hws_info + '-- hwgrp + |-- sso_hwgrp_aq_thresh + |-- sso_hwgrp_iaq_walk + |-- sso_hwgrp_pc + |-- sso_hwgrp_free_list_walk + |-- sso_hwgrp_ient_walk + '-- sso_hwgrp_taq_walk + +RVU block LF allocation: + +.. code-block:: console + + cat /sys/kernel/debug/octeontx2/rsrc_alloc + + pcifunc NPA NIX SSO GROUP SSOWS TIM CPT + PF1 0 0 + PF4 1 + PF13 0, 1 0, 1 0 + +CGX example usage: + +.. code-block:: console + + cat /sys/kernel/debug/octeontx2/cgx/cgx2/lmac0/stats + + =======Link Status====== + Link is UP 40000 Mbps + =======RX_STATS====== + Received packets: 0 + Octets of received packets: 0 + Received PAUSE packets: 0 + Received PAUSE and control packets: 0 + Filtered DMAC0 (NIX-bound) packets: 0 + Filtered DMAC0 (NIX-bound) octets: 0 + Packets dropped due to RX FIFO full: 0 + Octets dropped due to RX FIFO full: 0 + Error packets: 0 + Filtered DMAC1 (NCSI-bound) packets: 0 + Filtered DMAC1 (NCSI-bound) octets: 0 + NCSI-bound packets dropped: 0 + NCSI-bound octets dropped: 0 + =======TX_STATS====== + Packets dropped due to excessive collisions: 0 + Packets dropped due to excessive deferral: 0 + Multiple collisions before successful transmission: 0 + Single collisions before successful transmission: 0 + Total octets sent on the interface: 0 + Total frames sent on the interface: 0 + Packets sent with an octet count < 64: 0 + Packets sent with an octet count == 64: 0 + Packets sent with an octet count of 65127: 0 + Packets sent with an octet count of 128-255: 0 + Packets sent with an octet count of 256-511: 0 + Packets sent with an octet count of 512-1023: 0 + Packets sent with an octet count of 1024-1518: 0 + Packets sent with an octet count of > 1518: 0 + Packets sent to a broadcast DMAC: 0 + Packets sent to the multicast DMAC: 0 + Transmit underflow and were truncated: 0 + Control/PAUSE packets sent: 0 + +CPT example usage: + +.. code-block:: console + + cat /sys/kernel/debug/octeontx2/cpt/cpt_pc + + CPT instruction requests 0 + CPT instruction latency 0 + CPT NCB read requests 0 + CPT NCB read latency 0 + CPT read requests caused by UC fills 0 + CPT active cycles pc 1395642 + CPT clock count pc 5579867595493 + +NIX example usage: + +.. code-block:: console + + Usage: echo <nixlf> [cq number/all] > /sys/kernel/debug/octeontx2/nix/cq_ctx + cat /sys/kernel/debug/octeontx2/nix/cq_ctx + echo 0 0 > /sys/kernel/debug/octeontx2/nix/cq_ctx + cat /sys/kernel/debug/octeontx2/nix/cq_ctx + + =====cq_ctx for nixlf:0 and qidx:0 is===== + W0: base 158ef1a00 + + W1: wrptr 0 + W1: avg_con 0 + W1: cint_idx 0 + W1: cq_err 0 + W1: qint_idx 0 + W1: bpid 0 + W1: bp_ena 0 + + W2: update_time 31043 + W2:avg_level 255 + W2: head 0 + W2:tail 0 + + W3: cq_err_int_ena 5 + W3:cq_err_int 0 + W3: qsize 4 + W3:caching 1 + W3: substream 0x000 + W3: ena 1 + W3: drop_ena 1 + W3: drop 64 + W3: bp 0 + +NPA example usage: + +.. code-block:: console + + Usage: echo <npalf> [pool number/all] > /sys/kernel/debug/octeontx2/npa/pool_ctx + cat /sys/kernel/debug/octeontx2/npa/pool_ctx + echo 0 0 > /sys/kernel/debug/octeontx2/npa/pool_ctx + cat /sys/kernel/debug/octeontx2/npa/pool_ctx + + ======POOL : 0======= + W0: Stack base 1375bff00 + W1: ena 1 + W1: nat_align 1 + W1: stack_caching 1 + W1: stack_way_mask 0 + W1: buf_offset 1 + W1: buf_size 19 + W2: stack_max_pages 24315 + W2: stack_pages 24314 + W3: op_pc 267456 + W4: stack_offset 2 + W4: shift 5 + W4: avg_level 255 + W4: avg_con 0 + W4: fc_ena 0 + W4: fc_stype 0 + W4: fc_hyst_bits 0 + W4: fc_up_crossing 0 + W4: update_time 62993 + W5: fc_addr 0 + W6: ptr_start 1593adf00 + W7: ptr_end 180000000 + W8: err_int 0 + W8: err_int_ena 7 + W8: thresh_int 0 + W8: thresh_int_ena 0 + W8: thresh_up 0 + W8: thresh_qint_idx 0 + W8: err_qint_idx 0 + +NPC example usage: + +.. code-block:: console + + cat /sys/kernel/debug/octeontx2/npc/mcam_info + + NPC MCAM info: + RX keywidth : 224bits + TX keywidth : 224bits + + MCAM entries : 2048 + Reserved : 158 + Available : 1890 + + MCAM counters : 512 + Reserved : 1 + Available : 511 + +SSO example usage: + +.. code-block:: console + + Usage: echo [<hws>/all] > /sys/kernel/debug/octeontx2/sso/hws/sso_hws_info + echo 0 > /sys/kernel/debug/octeontx2/sso/hws/sso_hws_info + + ================================================== + SSOW HWS[0] Arbitration State 0x0 + SSOW HWS[0] Guest Machine Control 0x0 + SSOW HWS[0] SET[0] Group Mask[0] 0xffffffffffffffff + SSOW HWS[0] SET[0] Group Mask[1] 0xffffffffffffffff + SSOW HWS[0] SET[0] Group Mask[2] 0xffffffffffffffff + SSOW HWS[0] SET[0] Group Mask[3] 0xffffffffffffffff + SSOW HWS[0] SET[1] Group Mask[0] 0xffffffffffffffff + SSOW HWS[0] SET[1] Group Mask[1] 0xffffffffffffffff + SSOW HWS[0] SET[1] Group Mask[2] 0xffffffffffffffff + SSOW HWS[0] SET[1] Group Mask[3] 0xffffffffffffffff + ================================================== + +Compile DPDK +------------ + +DPDK may be compiled either natively on OCTEON TX2 platform or cross-compiled on +an x86 based platform. + +Native Compilation +~~~~~~~~~~~~~~~~~~ + +make build +^^^^^^^^^^ + +.. code-block:: console + + make config T=arm64-octeontx2-linux-gcc + make -j + +The example applications can be compiled using the following: + +.. code-block:: console + + cd <dpdk directory> + export RTE_SDK=$PWD + export RTE_TARGET=build + cd examples/<application> + make -j + +meson build +^^^^^^^^^^^ + +.. code-block:: console + + meson build + ninja -C build + +Cross Compilation +~~~~~~~~~~~~~~~~~ + +Refer to :doc:`../linux_gsg/cross_build_dpdk_for_arm64` for generic arm64 details. + +make build +^^^^^^^^^^ + +.. code-block:: console + + make config T=arm64-octeontx2-linux-gcc + make -j CROSS=aarch64-marvell-linux-gnu- CONFIG_RTE_KNI_KMOD=n + +meson build +^^^^^^^^^^^ + +.. code-block:: console + + meson build --cross-file config/arm/arm64_octeontx2_linux_gcc + ninja -C build + +.. note:: + + By default, meson cross compilation uses ``aarch64-linux-gnu-gcc`` toolchain, + if Marvell toolchain is available then it can be used by overriding the + c, cpp, ar, strip ``binaries`` attributes to respective Marvell + toolchain binaries in ``config/arm/arm64_octeontx2_linux_gcc`` file. |