summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Iremonger <bernard.iremonger@intel.com>2014-11-14 11:53:41 +0000
committerThomas Monjalon <thomas.monjalon@6wind.com>2014-11-18 14:49:54 +0100
commitfc1f2750a3ec6da919e3c86e59d56f34ec97154b (patch)
tree90bfbaeb8d079ad36aea970eaf2003247aeeec22
parenta4675d45cce945510f11a8a03a6cfe9ee871e67d (diff)
downloaddpdk-fc1f2750a3ec6da919e3c86e59d56f34ec97154b.zip
dpdk-fc1f2750a3ec6da919e3c86e59d56f34ec97154b.tar.gz
dpdk-fc1f2750a3ec6da919e3c86e59d56f34ec97154b.tar.xz
doc: programmers guide
The 1.7 DPDK_Prog_Guide document in MSWord has been converted to rst format for use with Sphinx. There is an rst file for each chapter and an index.rst file which contains the table of contents. The top level index file has been modified to include this guide. This document contains some png image files. If any of these png files are modified they should be replaced with an svg file. This is the sixth document from a set of 6 documents. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
-rw-r--r--doc/guides/index.rst1
-rw-r--r--doc/guides/prog_guide/build_app.rst128
-rw-r--r--doc/guides/prog_guide/dev_kit_build_system.rst418
-rw-r--r--doc/guides/prog_guide/dev_kit_root_make_help.rst255
-rw-r--r--doc/guides/prog_guide/driver_vm_emul_dev.rst178
-rw-r--r--doc/guides/prog_guide/env_abstraction_layer.rst215
-rw-r--r--doc/guides/prog_guide/ext_app_lib_make_help.rst125
-rw-r--r--doc/guides/prog_guide/extend_intel_dpdk.rst136
-rw-r--r--doc/guides/prog_guide/glossary.rst199
-rw-r--r--doc/guides/prog_guide/hash_lib.rst134
-rw-r--r--doc/guides/prog_guide/i40e_ixgbe_igb_virt_func_drv.rst553
-rw-r--r--doc/guides/prog_guide/img/architecture-overview.svg1011
-rw-r--r--doc/guides/prog_guide/img/blk_diag_dropper.pngbin0 -> 55303 bytes
-rw-r--r--doc/guides/prog_guide/img/console.pngbin0 -> 40850 bytes
-rw-r--r--doc/guides/prog_guide/img/data_struct_per_port.pngbin0 -> 58769 bytes
-rw-r--r--doc/guides/prog_guide/img/dpdk_xen_pkt_switch.pngbin0 -> 163842 bytes
-rw-r--r--doc/guides/prog_guide/img/drop_probability_eq3.pngbin0 -> 3205 bytes
-rw-r--r--doc/guides/prog_guide/img/drop_probability_eq4.pngbin0 -> 2737 bytes
-rw-r--r--doc/guides/prog_guide/img/drop_probability_graph.pngbin0 -> 62349 bytes
-rw-r--r--doc/guides/prog_guide/img/eq2_expression.pngbin0 -> 1614 bytes
-rw-r--r--doc/guides/prog_guide/img/eq2_factor.pngbin0 -> 995 bytes
-rw-r--r--doc/guides/prog_guide/img/ewma_filter_eq_1.pngbin0 -> 840 bytes
-rw-r--r--doc/guides/prog_guide/img/ewma_filter_eq_2.pngbin0 -> 1462 bytes
-rw-r--r--doc/guides/prog_guide/img/ex_data_flow_tru_dropper.pngbin0 -> 32578 bytes
-rw-r--r--doc/guides/prog_guide/img/fast_pkt_proc.pngbin0 -> 355905 bytes
-rw-r--r--doc/guides/prog_guide/img/figure32.pngbin0 -> 11603 bytes
-rw-r--r--doc/guides/prog_guide/img/figure33.pngbin0 -> 65216 bytes
-rw-r--r--doc/guides/prog_guide/img/figure34.pngbin0 -> 11581 bytes
-rw-r--r--doc/guides/prog_guide/img/figure35.pngbin0 -> 75012 bytes
-rw-r--r--doc/guides/prog_guide/img/figure37.pngbin0 -> 6934 bytes
-rw-r--r--doc/guides/prog_guide/img/figure38.pngbin0 -> 7372 bytes
-rw-r--r--doc/guides/prog_guide/img/figure39.pngbin0 -> 55986 bytes
-rw-r--r--doc/guides/prog_guide/img/flow_tru_droppper.pngbin0 -> 30870 bytes
-rw-r--r--doc/guides/prog_guide/img/forward_stats.pngbin0 -> 8849 bytes
-rw-r--r--doc/guides/prog_guide/img/grant_refs.pngbin0 -> 6405 bytes
-rw-r--r--doc/guides/prog_guide/img/grant_table.pngbin0 -> 96762 bytes
-rw-r--r--doc/guides/prog_guide/img/hier_sched_blk.pngbin0 -> 36328 bytes
-rw-r--r--doc/guides/prog_guide/img/host_vm_comms.pngbin0 -> 16487 bytes
-rw-r--r--doc/guides/prog_guide/img/host_vm_comms_qemu.pngbin0 -> 15383 bytes
-rw-r--r--doc/guides/prog_guide/img/inter_vm_comms.pngbin0 -> 370244 bytes
-rw-r--r--doc/guides/prog_guide/img/ivshmem.pngbin0 -> 44920 bytes
-rw-r--r--doc/guides/prog_guide/img/kernel_nic_intf.pngbin0 -> 185839 bytes
-rw-r--r--doc/guides/prog_guide/img/kni_traffic_flow.pngbin0 -> 366308 bytes
-rw-r--r--doc/guides/prog_guide/img/link_bonding.pngbin0 -> 223318 bytes
-rw-r--r--doc/guides/prog_guide/img/linuxapp_launch.svg762
-rw-r--r--doc/guides/prog_guide/img/m_definition.pngbin0 -> 1261 bytes
-rw-r--r--doc/guides/prog_guide/img/malloc_heap.pngbin0 -> 81329 bytes
-rw-r--r--doc/guides/prog_guide/img/mbuf1.svg584
-rw-r--r--doc/guides/prog_guide/img/mbuf2.svg1263
-rw-r--r--doc/guides/prog_guide/img/memory-management.svg2164
-rw-r--r--doc/guides/prog_guide/img/memory-management2.svg2301
-rw-r--r--doc/guides/prog_guide/img/mempool.svg2434
-rw-r--r--doc/guides/prog_guide/img/multi_process_memory.svg102
-rw-r--r--doc/guides/prog_guide/img/packet_distributor1.pngbin0 -> 99482 bytes
-rw-r--r--doc/guides/prog_guide/img/packet_distributor2.pngbin0 -> 102867 bytes
-rw-r--r--doc/guides/prog_guide/img/perf_benchmark.pngbin0 -> 392248 bytes
-rw-r--r--doc/guides/prog_guide/img/pipe_prefetch_sm.pngbin0 -> 71898 bytes
-rw-r--r--doc/guides/prog_guide/img/pkt_drop_probability.pngbin0 -> 46368 bytes
-rw-r--r--doc/guides/prog_guide/img/pkt_flow_kni.pngbin0 -> 51088 bytes
-rw-r--r--doc/guides/prog_guide/img/pkt_proc_pipeline_qos.pngbin0 -> 93198 bytes
-rw-r--r--doc/guides/prog_guide/img/prefetch_pipeline.pngbin0 -> 56358 bytes
-rw-r--r--doc/guides/prog_guide/img/ring-dequeue1.svg690
-rw-r--r--doc/guides/prog_guide/img/ring-dequeue2.svg653
-rw-r--r--doc/guides/prog_guide/img/ring-dequeue3.svg648
-rw-r--r--doc/guides/prog_guide/img/ring-enqueue1.svg599
-rw-r--r--doc/guides/prog_guide/img/ring-enqueue2.svg643
-rw-r--r--doc/guides/prog_guide/img/ring-enqueue3.svg638
-rw-r--r--doc/guides/prog_guide/img/ring-modulo1.svg806
-rw-r--r--doc/guides/prog_guide/img/ring-modulo2.svg851
-rw-r--r--doc/guides/prog_guide/img/ring-mp-enqueue1.svg738
-rw-r--r--doc/guides/prog_guide/img/ring-mp-enqueue2.svg779
-rw-r--r--doc/guides/prog_guide/img/ring-mp-enqueue3.svg816
-rw-r--r--doc/guides/prog_guide/img/ring-mp-enqueue4.svg816
-rw-r--r--doc/guides/prog_guide/img/ring-mp-enqueue5.svg724
-rw-r--r--doc/guides/prog_guide/img/ring1.svg386
-rw-r--r--doc/guides/prog_guide/img/sched_hier_per_port.pngbin0 -> 58973 bytes
-rw-r--r--doc/guides/prog_guide/img/single_port_nic.pngbin0 -> 425314 bytes
-rw-r--r--doc/guides/prog_guide/img/tbl24_tbl8.pngbin0 -> 95193 bytes
-rw-r--r--doc/guides/prog_guide/img/tbl24_tbl8_tbl8.pngbin0 -> 114003 bytes
-rw-r--r--doc/guides/prog_guide/img/vhost_net_arch.pngbin0 -> 251431 bytes
-rw-r--r--doc/guides/prog_guide/img/vm_vm_comms.pngbin0 -> 172288 bytes
-rw-r--r--doc/guides/prog_guide/img/vmxnet3_int.pngbin0 -> 107542 bytes
-rw-r--r--doc/guides/prog_guide/img/vswitch_vm.pngbin0 -> 123082 bytes
-rw-r--r--doc/guides/prog_guide/index.rst271
-rw-r--r--doc/guides/prog_guide/intel_dpdk_xen_based_packet_switch_sol.rst464
-rw-r--r--doc/guides/prog_guide/intro.rst83
-rw-r--r--doc/guides/prog_guide/ip_fragment_reassembly_lib.rst138
-rw-r--r--doc/guides/prog_guide/ivshmem_lib.rst158
-rw-r--r--doc/guides/prog_guide/kernel_nic_interface.rst290
-rw-r--r--doc/guides/prog_guide/libpcap_ring_based_poll_mode_drv.rst271
-rw-r--r--doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst278
-rw-r--r--doc/guides/prog_guide/lpm6_lib.rst235
-rw-r--r--doc/guides/prog_guide/lpm_lib.rst223
-rw-r--r--doc/guides/prog_guide/malloc_lib.rst236
-rw-r--r--doc/guides/prog_guide/mbuf_lib.rst192
-rw-r--r--doc/guides/prog_guide/mempool_lib.rst148
-rw-r--r--doc/guides/prog_guide/multi_proc_support.rst203
-rw-r--r--doc/guides/prog_guide/overview.rst207
-rw-r--r--doc/guides/prog_guide/packet_classif_access_ctrl.rst435
-rw-r--r--doc/guides/prog_guide/packet_distrib_lib.rst116
-rw-r--r--doc/guides/prog_guide/packet_framework.rst1183
-rw-r--r--doc/guides/prog_guide/perf_opt_guidelines.rst46
-rw-r--r--doc/guides/prog_guide/poll_mode_drv.rst441
-rw-r--r--doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst212
-rw-r--r--doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst184
-rw-r--r--doc/guides/prog_guide/power_man.rst121
-rw-r--r--doc/guides/prog_guide/profile_app.rst52
-rw-r--r--doc/guides/prog_guide/qos_framework.rst1765
-rw-r--r--doc/guides/prog_guide/ring_lib.rst376
-rw-r--r--doc/guides/prog_guide/source_org.rst138
-rw-r--r--doc/guides/prog_guide/thread_safety_intel_dpdk_functions.rst102
-rw-r--r--doc/guides/prog_guide/timer_lib.rst104
-rw-r--r--doc/guides/prog_guide/writing_efficient_code.rst232
113 files changed, 31654 insertions, 0 deletions
diff --git a/doc/guides/index.rst b/doc/guides/index.rst
index 438139d..c589a30 100644
--- a/doc/guides/index.rst
+++ b/doc/guides/index.rst
@@ -39,6 +39,7 @@ Contents:
linux_gsg/index
freebsd_gsg/index
+ prog_guide/index
sample_app_ug/index
testpmd_app_ug/index
rel_notes/index
diff --git a/doc/guides/prog_guide/build_app.rst b/doc/guides/prog_guide/build_app.rst
new file mode 100644
index 0000000..d28d735
--- /dev/null
+++ b/doc/guides/prog_guide/build_app.rst
@@ -0,0 +1,128 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.. _Building_Your_Own_Application:
+
+Building Your Own Application
+=============================
+
+Compiling a Sample Application in the Development Kit Directory
+---------------------------------------------------------------
+
+When compiling a sample application (for example, hello world), the following variables must be exported:
+RTE_SDK and RTE_TARGET.
+
+.. code-block:: console
+
+ ~/DPDK$ cd examples/helloworld/
+ ~/DPDK/examples/helloworld$ export RTE_SDK=/home/user/DPDK
+ ~/DPDK/examples/helloworld$ export RTE_TARGET=x86_64-native-linuxapp-gcc
+ ~/DPDK/examples/helloworld$ make
+ CC main.o
+ LD helloworld
+ INSTALL-APP helloworld
+ INSTALL-MAP helloworld.map
+
+The binary is generated in the build directory by default:
+
+.. code-block:: console
+
+ ~/DPDK/examples/helloworld$ ls build/app
+ helloworld helloworld.map
+
+Build Your Own Application Outside the Development Kit
+------------------------------------------------------
+
+The sample application (Hello World) can be duplicated in a new directory as a starting point for your development:
+
+.. code-block:: console
+
+ ~$ cp -r DPDK/examples/helloworld my_rte_app
+ ~$ cd my_rte_app/
+ ~/my_rte_app$ export RTE_SDK=/home/user/DPDK
+ ~/my_rte_app$ export RTE_TARGET=x86_64-native-linuxapp-gcc
+ ~/my_rte_app$ make
+ CC main.o
+ LD helloworld
+ INSTALL-APP helloworld
+ INSTALL-MAP helloworld.map
+
+Customizing Makefiles
+---------------------
+
+Application Makefile
+~~~~~~~~~~~~~~~~~~~~
+
+The default makefile provided with the Hello World sample application is a good starting point. It includes:
+
+* $(RTE_SDK)/mk/DPDK.vars.mk at the beginning
+
+* $(RTE_SDK)/mk/DPDK.extapp.mk at the end
+
+The user must define several variables:
+
+* APP: Contains the name of the application.
+
+* SRCS-y: List of source files (\*.c, \*.S).
+
+Library Makefile
+~~~~~~~~~~~~~~~~
+
+It is also possible to build a library in the same way:
+
+* Include $(RTE_SDK)/mk/DPDK.vars.mk at the beginning.
+
+* Include $(RTE_SDK)/mk/DPDK.extlib.mk at the end.
+
+The only difference is that APP should be replaced by LIB, which contains the name of the library. For example, libfoo.a.
+
+Customize Makefile Actions
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Some variables can be defined to customize Makefile actions. The most common are listed below. Refer to
+:ref:`Makefile Description <Makefile_Description>` section in
+:ref:`Development Kit Build System <Development_Kit_Build_System>`
+
+chapter for details.
+
+* VPATH: The path list where the build system will search for sources. By default,
+ RTE_SRCDIR will be included in VPATH.
+
+* CFLAGS_my_file.o: The specific flags to add for C compilation of my_file.c.
+
+* CFLAGS: The flags to use for C compilation.
+
+* LDFLAGS: The flags to use for linking.
+
+* CPPFLAGS: The flags to use to provide flags to the C preprocessor (only useful when assembling .S files)
+
+* LDLIBS: A list of libraries to link with (for example, -L /path/to/libfoo - lfoo)
+
+* NO_AUTOLIBS: If set, the libraries provided by the framework will not be included in the LDLIBS variable automatically.
diff --git a/doc/guides/prog_guide/dev_kit_build_system.rst b/doc/guides/prog_guide/dev_kit_build_system.rst
new file mode 100644
index 0000000..4981688
--- /dev/null
+++ b/doc/guides/prog_guide/dev_kit_build_system.rst
@@ -0,0 +1,418 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.. _Development_Kit_Build_System:
+
+Development Kit Build System
+============================
+
+The Intel® DPDK requires a build system for compilation activities and so on.
+This section describes the constraints and the mechanisms used in the Intel® DPDK framework.
+
+There are two use-cases for the framework:
+
+* Compilation of the Intel® DPDK libraries and sample applications;
+ the framework generates specific binary libraries,
+ include files and sample applications
+
+* Compilation of an external application or library, using an installed binary Intel® DPDK
+
+Building the Development Kit Binary
+-----------------------------------
+
+The following provides details on how to build the Intel® DPDK binary.
+
+Build Directory Concept
+~~~~~~~~~~~~~~~~~~~~~~~
+
+After installation, a build directory structure is created.
+Each build directory contains include files, libraries, and applications:
+
+.. code-block:: console
+
+ ~/DPDK$ ls
+ app MAINTAINERS
+ config Makefile
+ COPYRIGHT mk
+ doc scripts
+ examples lib
+ tools x86_64-native-linuxapp-gcc
+ x86_64-native-linuxapp-icc i686-native-linuxapp-gcc
+ i686-native-linuxapp-icc
+
+ ...
+ ~/DEV/DPDK$ ls i686-native-linuxapp-gcc
+
+ app build hostapp include kmod lib Makefile
+
+
+ ~/DEV/DPDK$ ls i686-native-linuxapp-gcc/app/
+ cmdline_test dump_cfg test testpmd
+ cmdline_test.map dump_cfg.map test.map
+ testpmd.map
+
+
+ ~/DEV/DPDK$ ls i686-native-linuxapp-gcc/lib/
+
+ libethdev.a librte_hash.a librte_mbuf.a librte_pmd_ixgbe.a
+
+ librte_cmdline.a librte_lpm.a librte_mempool.a librte_ring.a
+
+ librte_eal.a librte_malloc.a librte_pmd_e1000.a librte_timer.a
+
+
+ ~/DEV/DPDK$ ls i686-native-linuxapp-gcc/include/
+ arch rte_cpuflags.h rte_memcpy.h
+ cmdline_cirbuf.h rte_cycles.h rte_memory.h
+ cmdline.h rte_debug.h rte_mempool.h
+ cmdline_parse_etheraddr.h rte_eal.h rte_memzone.h
+ cmdline_parse.h rte_errno.h rte_pci_dev_ids.h
+ cmdline_parse_ipaddr.h rte_ethdev.h rte_pci.h
+ cmdline_parse_num.h rte_ether.h rte_per_lcore.h
+ cmdline_parse_portlist.h rte_fbk_hash.h rte_prefetch.h
+ cmdline_parse_string.h rte_hash_crc.h rte_random.h
+ cmdline_rdline.h rte_hash.h rte_ring.h
+ cmdline_socket.h rte_interrupts.h rte_rwlock.h
+ cmdline_vt100.h rte_ip.h rte_sctp.h
+ exec-env rte_jhash.h rte_spinlock.h
+ rte_alarm.h rte_launch.h rte_string_fns.h
+ rte_atomic.h rte_lcore.h rte_tailq.h
+ rte_branch_prediction.h rte_log.h rte_tcp.h
+ rte_byteorder.h rte_lpm.h rte_timer.h
+ rte_common.h rte_malloc.h rte_udp.h
+ rte_config.h rte_mbuf.h
+
+
+A build directory is specific to a configuration that includes architecture + execution environment + toolchain.
+It is possible to have several build directories sharing the same sources with different configurations.
+
+For instance, to create a new build directory called my_sdk_build_dir using the default configuration template config/defconfig_x86_64-linuxapp,
+we use:
+
+.. code-block:: console
+
+ cd ${RTE_SDK}
+ make config T=x86_64-native-linuxapp-gcc O=my_sdk_build_dir
+
+This creates a new my_sdk_build_dir directory. After that, we can compile by doing:
+
+.. code-block:: console
+
+ cd my_sdk_build_dir
+ make
+
+which is equivalent to:
+
+.. code-block:: console
+
+ make O=my_sdk_build_dir
+
+The content of the my_sdk_build_dir is then:
+
+::
+
+ -- .config # used configuration
+
+ -- Makefile # wrapper that calls head Makefile
+ # with $PWD as build directory
+
+
+ -- build #All temporary files used during build
+ +--app # process, including . o, .d, and .cmd files.
+ | +-- test # For libraries, we have the .a file.
+ | +-- test.o # For applications, we have the elf file.
+ | `-- ...
+ +-- lib
+ +-- librte_eal
+ | `-- ...
+ +-- librte_mempool
+ | +-- mempool-file1.o
+ | +-- .mempool-file1.o.cmd
+ | +-- .mempool-file1.o.d
+ | +-- mempool-file2.o
+ | +-- .mempool-file2.o.cmd
+ | +-- .mempool-file2.o.d
+ | `-- mempool.a
+ `-- ...
+
+ -- include # All include files installed by libraries
+ +-- librte_mempool.h # and applications are located in this
+ +-- rte_eal.h # directory. The installed files can depend
+ +-- rte_spinlock.h # on configuration if needed (environment,
+ +-- rte_atomic.h # architecture, ..)
+ `-- \*.h ...
+
+ -- lib # all compiled libraries are copied in this
+ +-- librte_eal.a # directory
+ +-- librte_mempool.a
+ `-- \*.a ...
+
+ -- app # All compiled applications are installed
+ + --test # here. It includes the binary in elf format
+
+Refer to
+:ref:`Development Kit Root Makefile Help <Development_Kit_Root_Makefile_Help>`
+for details about make commands that can be used from the root of Intel® DPDK.
+
+Building External Applications
+------------------------------
+
+Since Intel® DPDK is in essence a development kit, the first objective of end users will be to create an application using this SDK.
+To compile an application, the user must set the RTE_SDK and RTE_TARGET environment variables.
+
+.. code-block:: console
+
+ export RTE_SDK=/opt/DPDK
+ export RTE_TARGET=x86_64-native-linuxapp-gcc
+ cd /path/to/my_app
+
+For a new application, the user must create their own Makefile that includes some .mk files, such as
+${RTE_SDK}/mk/DPDK.vars.mk, and ${RTE_SDK}/mk/ DPDK.app.mk.
+This is described in
+:ref:`Building Your Own Application <Building_Your_Own_Application>`.
+
+Depending on the chosen target (architecture, machine, executive environment, toolchain) defined in the Makefile or as an environment variable,
+the applications and libraries will compile using the appropriate .h files and will link with the appropriate .a files.
+These files are located in ${RTE_SDK}/arch-machine-execenv-toolchain, which is referenced internally by ${RTE_BIN_SDK}.
+
+To compile their application, the user just has to call make.
+The compilation result will be located in /path/to/my_app/build directory.
+
+Sample applications are provided in the examples directory.
+
+.. _Makefile_Description:
+
+Makefile Description
+--------------------
+
+General Rules For Intel® DPDK Makefiles
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In the Intel® DPDK, Makefiles always follow the same scheme:
+
+#. Include $(RTE_SDK)/mk/DPDK.vars.mk at the beginning.
+
+#. Define specific variables for RTE build system.
+
+#. Include a specific $(RTE_SDK)/mk/DPDK.XYZ.mk, where XYZ can be app, lib, extapp, extlib, obj, gnuconfigure,
+ and so on, depending on what kind of object you want to build.
+ :ref:`See Makefile Types <Makefile_Types>` below.
+
+#. Include user-defined rules and variables.
+
+ The following is a very simple example of an external application Makefile:
+
+ .. code-block:: make
+
+ include $(RTE_SDK)/mk/DPDK.vars.mk
+
+ # binary name
+ APP = helloworld
+
+ # all source are stored in SRCS-y
+ SRCS-y := main.c
+
+ CFLAGS += -O3
+ CFLAGS += $(WERROR_FLAGS)
+
+ include $(RTE_SDK)/mk/DPDK.extapp.mk
+
+.. _Makefile_Types:
+
+Makefile Types
+~~~~~~~~~~~~~~
+
+Depending on the .mk file which is included at the end of the user Makefile, the Makefile will have a different role.
+Note that it is not possible to build a library and an application in the same Makefile.
+For that, the user must create two separate Makefiles, possibly in two different directories.
+
+In any case, the rte.vars.mk file must be included in the user Makefile as soon as possible.
+
+Application
+^^^^^^^^^^^
+
+These Makefiles generate a binary application.
+
+* rte.app.mk: Application in the development kit framework
+
+* rte.extapp.mk: External application
+
+* rte.hostapp.mk: Host application in the development kit framework
+
+Library
+^^^^^^^
+
+Generate a .a library.
+
+* rte.lib.mk: Library in the development kit framework
+
+* rte.extlib.mk: external library
+
+* rte.hostlib.mk: host library in the development kit framework
+
+Install
+^^^^^^^
+
+* rte.install.mk: Does not build anything, it is only used to create links or copy files to the installation directory.
+ This is useful for including files in the development kit framework.
+
+Kernel Module
+^^^^^^^^^^^^^
+
+* rte.module.mk: Build a kernel module in the development kit framework.
+
+Objects
+^^^^^^^
+
+* rte.obj.mk: Object aggregation (merge several .o in one) in the development kit framework.
+
+* rte.extobj.mk: Object aggregation (merge several .o in one) outside the development kit framework.
+
+Misc
+^^^^
+
+* rte.doc.mk: Documentation in the development kit framework
+
+* rte.gnuconfigure.mk: Build an application that is configure-based (used to compile *newlib*).
+
+* rte.subdir.mk: Build several directories in the development kit framework.
+
+.. _Useful_Variables_Provided_by_the_Build_System:
+
+Useful Variables Provided by the Build System
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* RTE_SDK: The absolute path to the Intel® DPDK sources.
+ When compiling the development kit, this variable is automatically set by the framework.
+ It has to be defined by the user as an environment variable if compiling an external application.
+
+* RTE_SRCDIR: The path to the root of the sources. When compiling the development kit, RTE_SRCDIR = RTE_SDK.
+ When compiling an external application, the variable points to the root of external application sources.
+
+* RTE_OUTPUT: The path to which output files are written.
+ Typically, it is $(RTE_SRCDIR)/build, but it can be overriden by the O= option in the make command line.
+
+* RTE_TARGET: A string identifying the target for which we are building.
+ The format is arch-machine-execenv-toolchain.
+ When compiling the SDK, the target is deduced by the build system from the configuration (.config).
+ When building an external application, it must be specified by the user in the Makefile or as an environment variable.
+
+* RTE_SDK_BIN: References $(RTE_SDK)/$(RTE_TARGET).
+
+* RTE_ARCH: Defines the architecture (i686, x86_64).
+ It is the same value as CONFIG_RTE_ARCH but without the double-quotes around the string.
+
+* RTE_MACHINE: Defines the machine.
+ It is the same value as CONFIG_RTE_MACHINE but without the double-quotes around the string.
+
+* RTE_TOOLCHAIN: Defines the toolchain (gcc , icc).
+ It is the same value as CONFIG_RTE_TOOLCHAIN but without the double-quotes around the string.
+
+* RTE_EXEC_ENV: Defines the executive environment (linuxapp).
+ It is the same value as CONFIG_RTE_EXEC_ENV but without the double-quotes around the string.
+
+* RTE_KERNELDIR: This variable contains the absolute path to the kernel sources that will be used to compile the kernel modules.
+ The kernel headers must be the same as the ones that will be used on the target machine (the machine that will run the application).
+ By default, the variable is set to /lib/modules/$(shell uname -r)/build,
+ which is correct when the target machine is also the build machine.
+
+Variables that Can be Set/Overridden in a Makefile Only
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* VPATH: The path list that the build system will search for sources. By default, RTE_SRCDIR will be included in VPATH.
+
+* CFLAGS: Flags to use for C compilation. The user should use += to append data in this variable.
+
+* LDFLAGS: Flags to use for linking. The user should use += to append data in this variable.
+
+* ASFLAGS: Flags to use for assembly. The user should use += to append data in this variable.
+
+* CPPFLAGS: Flags to use to give flags to C preprocessor (only useful when assembling .S files).
+ The user should use += to append data in this variable.
+
+* LDLIBS: In an application, the list of libraries to link with (for example, -L /path/to/libfoo -lfoo ).
+ The user should use += to append data in this variable.
+
+* SRC-y: A list of source files (.c, .S, or .o if the source is a binary) in case of application, library or object Makefiles.
+ The sources must be available from VPATH.
+
+* INSTALL-y-$(INSTPATH): A list of files to be installed in $(INSTPATH).
+ The files must be available from VPATH and will be copied in $(RTE_OUTPUT)/$(INSTPATH). Can be used in almost any RTE Makefile.
+
+* SYMLINK-y-$(INSTPATH): A list of files to be installed in $(INSTPATH).
+ The files must be available from VPATH and will be linked (symbolically) in $(RTE_OUTPUT)/$(INSTPATH).
+ This variable can be used in almost any Intel® DPDK Makefile.
+
+* PREBUILD: A list of prerequisite actions to be taken before building. The user should use += to append data in this variable.
+
+* POSTBUILD: A list of actions to be taken after the main build. The user should use += to append data in this variable.
+
+* PREINSTALL: A list of prerequisite actions to be taken before installing. The user should use += to append data in this variable.
+
+* POSTINSTALL: A list of actions to be taken after installing. The user should use += to append data in this variable.
+
+* PRECLEAN: A list of prerequisite actions to be taken before cleaning. The user should use += to append data in this variable.
+
+* POSTCLEAN: A list of actions to be taken after cleaning. The user should use += to append data in this variable.
+
+* DEPDIR-y: Only used in the development kit framework to specify if the build of the current directory depends on build of another one.
+ This is needed to support parallel builds correctly.
+
+Variables that can be Set/Overridden by the User on the Command Line Only
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Some variables can be used to configure the build system behavior. They are documented in
+:ref:`Development Kit Root Makefile Help <Development_Kit_Root_Makefile_Help>` and
+:ref:`External Application/Library Makefile Help <External_Application/Library_Makefile_Help>`
+
+ * WERROR_CFLAGS: By default, this is set to a specific value that depends on the compiler.
+ Users are encouraged to use this variable as follows:
+
+ CFLAGS += $(WERROR_CFLAGS)
+
+This avoids the use of different cases depending on the compiler (icc or gcc).
+Also, this variable can be overridden from the command line, which allows bypassing of the flags for testing purposes.
+
+Variables that Can be Set/Overridden by the User in a Makefile or Command Line
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* CFLAGS_my_file.o: Specific flags to add for C compilation of my_file.c.
+
+* LDFLAGS_my_app: Specific flags to add when linking my_app.
+
+* NO_AUTOLIBS: If set, the libraries provided by the framework will not be included in the LDLIBS variable automatically.
+
+* EXTRA_CFLAGS: The content of this variable is appended after CFLAGS when compiling.
+
+* EXTRA_LDFLAGS: The content of this variable is appended after LDFLAGS when linking.
+
+* EXTRA_ASFLAGS: The content of this variable is appended after ASFLAGS when assembling.
+
+* EXTRA_CPPFLAGS: The content of this variable is appended after CPPFLAGS when using a C preprocessor on assembly files.
diff --git a/doc/guides/prog_guide/dev_kit_root_make_help.rst b/doc/guides/prog_guide/dev_kit_root_make_help.rst
new file mode 100644
index 0000000..b410674
--- /dev/null
+++ b/doc/guides/prog_guide/dev_kit_root_make_help.rst
@@ -0,0 +1,255 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.. _Development_Kit_Root_Makefile_Help:
+
+Development Kit Root Makefile Help
+==================================
+
+The Intel® DPDK provides a root level Makefile with targets for configuration, building, cleaning, testing, installation and others.
+These targets are explained in the following sections.
+
+Configuration Targets
+---------------------
+
+The configuration target requires the name of the target, which is specified using T=mytarget and it is mandatory.
+The list of available targets are in $(RTE_SDK)/config (remove the defconfig _ prefix).
+
+Configuration targets also support the specification of the name of the output directory, using O=mybuilddir.
+This is an optional parameter, the default output directory is build.
+
+* Config
+
+ This will create a build directory, and generates a configuration from a template.
+ A Makefile is also created in the new build directory.
+
+ Example:
+
+ .. code-block:: console
+
+ make config O=mybuild T=x86_64-native-linuxapp-gcc
+
+Build Targets
+-------------
+
+Build targets support the optional specification of the name of the output directory, using O=mybuilddir.
+The default output directory is build.
+
+* all, build or just make
+
+ Build the Intel® DPDK in the output directory previously created by a make config.
+
+ Example:
+
+ .. code-block:: console
+
+ make O=mybuild
+
+* clean
+
+ Clean all objects created using make build.
+
+ Example:
+
+ .. code-block:: console
+
+ make clean O=mybuild
+
+* %_sub
+
+ Build a subdirectory only, without managing dependencies on other directories.
+
+ Example:
+
+ .. code-block:: console
+
+ make lib/librte_eal_sub O=mybuild
+
+* %_clean
+
+ Clean a subdirectory only.
+
+ Example:
+
+ .. code-block:: console
+
+ make lib/librte_eal_clean O=mybuild
+
+Install Targets
+---------------
+
+* Install
+
+ Build the Intel® DPDK binary.
+ Actually, this builds each supported target in a separate directory.
+ The name of each directory is the name of the target.
+ The name of the targets to install can be optionally specified using T=mytarget.
+ The target name can contain wildcard \* characters.
+ The list of available targets are in $(RTE_SDK)/config (remove the defconfig\_ prefix).
+
+ Example:
+
+ .. code-block:: console
+
+ make install T=x86_64-*
+
+* Uninstall
+
+ Remove installed target directories.
+
+Test Targets
+------------
+
+* test
+
+ Launch automatic tests for a build directory specified using O=mybuilddir.
+ It is optional, the default output directory is build.
+
+ Example:
+
+ .. code-block:: console
+
+ make test O=mybuild
+
+* testall
+
+ Launch automatic tests for all installed target directories (after a make install).
+ The name of the targets to test can be optionally specified using T=mytarget.
+ The target name can contain wildcard (\*) characters.
+ The list of available targets are in $(RTE_SDK)/config (remove the defconfig\_ prefix).
+
+ Examples:
+
+ .. code-block:: console
+
+ make testall, make testall T=x86_64-*
+
+Documentation Targets
+---------------------
+
+* doxydoc
+
+ Generate the Doxygen documentation (pdf only).
+
+Deps Targets
+------------
+
+* depdirs
+
+ This target is implicitly called by make config.
+ Typically, there is no need for a user to call it,
+ except if DEPDIRS-y variables have been updated in Makefiles.
+ It will generate the file $(RTE_OUTPUT)/.depdirs.
+
+ Example:
+
+ .. code-block:: console
+
+ make depdirs O=mybuild
+
+* depgraph
+
+ This command generates a dot graph of dependencies.
+ It can be displayed to debug circular dependency issues, or just to understand the dependencies.
+
+ Example:
+
+ .. code-block:: console
+
+ make depgraph O=mybuild > /tmp/graph.dot && dotty /tmp/ graph.dot
+
+Misc Targets
+------------
+
+* help
+
+ Show this help.
+
+Other Useful Command-line Variables
+-----------------------------------
+
+The following variables can be specified on the command line:
+
+* V=
+
+ Enable verbose build (show full compilation command line, and some intermediate commands).
+
+* D=
+
+ Enable dependency debugging. This provides some useful information about why a target is built or not.
+
+* EXTRA_CFLAGS=, EXTRA_LDFLAGS=, EXTRA_ASFLAGS=, EXTRA_CPPFLAGS=
+
+ Append specific compilation, link or asm flags.
+
+* CROSS=
+
+ Specify a cross toolchain header that will prefix all gcc/binutils applications. This only works when using gcc.
+
+Make in a Build Directory
+-------------------------
+
+All targets described above are called from the SDK root $(RTE_SDK).
+It is possible to run the same Makefile targets inside the build directory.
+For instance, the following command:
+
+.. code-block:: console
+
+ cd $(RTE_SDK)
+ make config O=mybuild T=x86_64-native-linuxapp-gcc
+ make O=mybuild
+
+is equivalent to:
+
+.. code-block:: console
+
+ cd $(RTE_SDK)
+ make config O=mybuild T=x86_64-native-linuxapp-gcc
+ cd mybuild
+
+ # no need to specify O= now
+ make
+
+Compiling for Debug
+-------------------
+
+To compile the Intel® DPDK and sample applications with debugging information included and the optimization level set to 0,
+the EXTRA_CFLAGS environment variable should be set before compiling as follows:
+
+.. code-block:: console
+
+ export EXTRA_CFLAGS='-O0 -g'
+
+The Intel® DPDK and any user or sample applications can then be compiled in the usual way.
+For example:
+
+.. code-block:: console
+
+ make install T=x86_64-native-linuxapp-gcc make -C examples/<theapp>
diff --git a/doc/guides/prog_guide/driver_vm_emul_dev.rst b/doc/guides/prog_guide/driver_vm_emul_dev.rst
new file mode 100644
index 0000000..19175bb
--- /dev/null
+++ b/doc/guides/prog_guide/driver_vm_emul_dev.rst
@@ -0,0 +1,178 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Driver for VM Emulated Devices
+==============================
+
+The Intel® DPDK EM poll mode driver supports the following emulated devices:
+
+* qemu-kvm emulated Intel® 82540EM Gigabit Ethernet Controller (qemu e1000 device)
+
+* VMware* emulated Intel® 82545EM Gigabit Ethernet Controller
+
+* VMware emulated Intel® 8274L Gigabit Ethernet Controller.
+
+Validated Hypervisors
+---------------------
+
+The validated hypervisors are:
+
+* KVM (Kernel Virtual Machine) with Qemu, version 0.14.0
+
+* KVM (Kernel Virtual Machine) with Qemu, version 0.15.1
+
+* VMware ESXi 5.0, Update 1
+
+Recommended Guest Operating System in Virtual Machine
+-----------------------------------------------------
+
+The recommended guest operating system in a virtualized environment is:
+
+* Fedora* 18 (64-bit)
+
+For supported kernel versions, refer to the *Intel® DPDK Release Notes*.
+
+Setting Up a KVM Virtual Machine
+--------------------------------
+
+The following describes a target environment:
+
+* Host Operating System: Fedora 14
+
+* Hypervisor: KVM (Kernel Virtual Machine) with Qemu version, 0.14.0
+
+* Guest Operating System: Fedora 14
+
+* Linux Kernel Version: Refer to the Intel® DPDK Getting Started Guide
+
+* Target Applications: testpmd
+
+The setup procedure is as follows:
+
+#. Download qemu-kvm-0.14.0 from
+ `http://sourceforge.net/projects/kvm/files/qemu-kvm/ <http://sourceforge.net/projects/kvm/files/qemu-kvm/>`_
+ and install it in the Host OS using the following steps:
+
+ When using a recent kernel (2.6.25+) with kvm modules included:
+
+ .. code-block:: console
+
+ tar xzf qemu-kvm-release.tar.gz cd qemu-kvm-release
+ ./configure --prefix=/usr/local/kvm
+ make
+ sudo make install
+ sudo /sbin/modprobe kvm-intel
+
+ When using an older kernel or a kernel from a distribution without the kvm modules,
+ you must download (from the same link), compile and install the modules yourself:
+
+ .. code-block:: console
+
+ tar xjf kvm-kmod-release.tar.bz2
+ cd kvm-kmod-release
+ ./configure
+ make
+ sudo make install
+ sudo /sbin/modprobe kvm-intel
+
+ Note that qemu-kvm installs in the /usr/local/bin directory.
+
+ For more details about KVM configuration and usage, please refer to:
+ `http://www.linux-kvm.org/page/HOWTO1 <http://www.linux-kvm.org/page/HOWTO1>`_.
+
+#. Create a Virtual Machine and install Fedora 14 on the Virtual Machine.
+ This is referred to as the Guest Operating System (Guest OS).
+
+#. Start the Virtual Machine with at least one emulated e1000 device.
+
+ .. note::
+
+ The Qemu provides several choices for the emulated network device backend.
+ Most commonly used is a TAP networking backend that uses a TAP networking device in the host.
+ For more information about Qemu supported networking backends and different options for configuring networking at Qemu,
+ please refer to:
+
+ — `http://www.linux-kvm.org/page/Networking <http://www.linux-kvm.org/page/Networking>`_
+
+ — `http://wiki.qemu.org/Documentation/Networking <http://wiki.qemu.org/Documentation/Networking>`_
+
+ — `http://qemu.weilnetz.de/qemu-doc.html <http://qemu.weilnetz.de/qemu-doc.html>`_
+
+ For example, to start a VM with two emulated e1000 devices, issue the following command:
+
+ .. code-block:: console
+
+ /usr/local/kvm/bin/qemu-system-x86_64 -cpu host -smp 4 -hda qemu1.raw -m 1024
+ -net nic,model=e1000,vlan=1,macaddr=DE:AD:1E:00:00:01
+ -net tap,vlan=1,ifname=tapvm01,script=no,downscript=no
+ -net nic,model=e1000,vlan=2,macaddr=DE:AD:1E:00:00:02
+ -net tap,vlan=2,ifname=tapvm02,script=no,downscript=no
+
+ where:
+
+ — -m = memory to assign
+
+ — -smp = number of smp cores
+
+ — -hda = virtual disk image
+
+ This command starts a new virtual machine with two emulated 82540EM devices,
+ backed up with two TAP networking host interfaces, tapvm01 and tapvm02.
+
+ .. code-block:: console
+
+ # ip tuntap show
+ tapvm01: tap
+ tapvm02: tap
+
+#. Configure your TAP networking interfaces using ip/ifconfig tools.
+
+#. Log in to the guest OS and check that the expected emulated devices exist:
+
+ .. code-block:: console
+
+ # lspci -d 8086:100e
+ 00:04.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
+ 00:05.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
+
+#. Install the Intel® DPDK and run testpmd.
+
+Known Limitations of Emulated Devices
+-------------------------------------
+
+The following are known limitations:
+
+#. The Qemu e1000 RX path does not support multiple descriptors/buffers per packet.
+ Therefore, rte_mbuf should be big enough to hold the whole packet.
+ For example, to allow testpmd to receive jumbo frames, use the following:
+
+ testpmd [options] -- --mbuf-size=<your-max-packet-size>
+
+#. Qemu e1000 does not validate the checksum of incoming packets.
diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst b/doc/guides/prog_guide/env_abstraction_layer.rst
new file mode 100644
index 0000000..e6144a7
--- /dev/null
+++ b/doc/guides/prog_guide/env_abstraction_layer.rst
@@ -0,0 +1,215 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.. _Environment_Abstraction_Layer:
+
+Environment Abstraction Layer
+=============================
+
+The Environment Abstraction Layer (EAL) is responsible for gaining access to low-level resources such as hardware and memory space.
+It provides a generic interface that hides the environment specifics from the applications and libraries.
+It is the responsibility of the initialization routine to decide how to allocate these resources
+(that is, memory space, PCI devices, timers, consoles, and so on).
+
+Typical services expected from the EAL are:
+
+* Intel® DPDK Loading and Launching:
+ The Intel® DPDK and its application are linked as a single application and must be loaded by some means.
+
+* Core Affinity/Assignment Procedures:
+ The EAL provides mechanisms for assigning execution units to specific cores as well as creating execution instances.
+
+* System Memory Reservation:
+ The EAL facilitates the reservation of different memory zones, for example, physical memory areas for device interactions.
+
+* PCI Address Abstraction: The EAL provides an interface to access PCI address space.
+
+* Trace and Debug Functions: Logs, dump_stack, panic and so on.
+
+* Utility Functions: Spinlocks and atomic counters that are not provided in libc.
+
+* CPU Feature Identification: Determine at runtime if a particular feature, for example, Intel® AVX is supported.
+ Determine if the current CPU supports the feature set that the binary was compiled for.
+
+* Interrupt Handling: Interfaces to register/unregister callbacks to specific interrupt sources.
+
+* Alarm Functions: Interfaces to set/remove callbacks to be run at a specific time.
+
+EAL in a Linux-userland Execution Environment
+---------------------------------------------
+
+In a Linux user space environment, the Intel® DPDK application runs as a user-space application using the pthread library.
+PCI information about devices and address space is discovered through the /sys kernel interface and through a module called igb_uio.
+Refer to the UIO: User-space drivers documentation in the Linux kernel. This memory is mmap'd in the application.
+
+The EAL performs physical memory allocation using mmap() in hugetlbfs (using huge page sizes to increase performance).
+This memory is exposed to Intel® DPDK service layers such as the :ref:`Mempool Library <Mempool_Library>`.
+
+At this point, the Intel® DPDK services layer will be initialized, then through pthread setaffinity calls,
+each execution unit will be assigned to a specific logical core to run as a user-level thread.
+
+The time reference is provided by the CPU Time-Stamp Counter (TSC) or by the HPET kernel API through a mmap() call.
+
+Initialization and Core Launching
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Part of the initialization is done by the start function of glibc.
+A check is also performed at initialization time to ensure that the micro architecture type chosen in the config file is supported by the CPU.
+Then, the main() function is called. The core initialization and launch is done in rte_eal_init() (see the API documentation).
+It consist of calls to the pthread library (more specifically, pthread_self(), pthread_create(), and pthread_setaffinity_np()).
+
+.. _pg_figure_2:
+
+**Figure 2. EAL Initialization in a Linux Application Environment**
+
+.. image3_png has been replaced
+
+|linuxapp_launch|
+
+.. note::
+
+ Initialization of objects, such as memory zones, rings, memory pools, lpm tables and hash tables,
+ should be done as part of the overall application initialization on the master lcore.
+ The creation and initialization functions for these objects are not multi-thread safe.
+ However, once initialized, the objects themselves can safely be used in multiple threads simultaneously.
+
+Multi-process Support
+~~~~~~~~~~~~~~~~~~~~~
+
+The Linuxapp EAL allows a multi-process as well as a multi-threaded (pthread) deployment model.
+See chapter 2.20
+:ref:`Multi-process Support <Multi-process_Support>` for more details.
+
+Memory Mapping Discovery and Memory Reservation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The allocation of large contiguous physical memory is done using the hugetlbfs kernel filesystem.
+The EAL provides an API to reserve named memory zones in this contiguous memory.
+The physical address of the reserved memory for that memory zone is also returned to the user by the memory zone reservation API.
+
+.. note::
+
+ Memory reservations done using the APIs provided by the rte_malloc library are also backed by pages from the hugetlbfs filesystem.
+ However, physical address information is not available for the blocks of memory allocated in this way.
+
+Xen Dom0 support without hugetbls
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The existing memory management implementation is based on the Linux kernel hugepage mechanism.
+However, Xen Dom0 does not support hugepages, so a new Linux kernel module rte_dom0_mm is added to workaround this limitation.
+
+The EAL uses IOCTL interface to notify the Linux kernel module rte_dom0_mm to allocate memory of specified size,
+and get all memory segments information from the module,
+and the EAL uses MMAP interface to map the allocated memory.
+For each memory segment, the physical addresses are contiguous within it but actual hardware addresses are contiguous within 2MB.
+
+PCI Access
+~~~~~~~~~~
+
+The EAL uses the /sys/bus/pci utilities provided by the kernel to scan the content on the PCI bus.
+
+To access PCI memory, a kernel module called igb_uio provides a /dev/uioX device file
+that can be mmap'd to obtain access to PCI address space from the application.
+It uses the uio kernel feature (userland driver).
+
+Per-lcore and Shared Variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. note::
+
+ lcore refers to a logical execution unit of the processor, sometimes called a hardware *thread*.
+
+Shared variables are the default behavior.
+Per-lcore variables are implemented using *Thread Local Storage* (TLS) to provide per-thread local storage.
+
+Logs
+~~~~
+
+A logging API is provided by EAL.
+By default, in a Linux application, logs are sent to syslog and also to the console.
+However, the log function can be overridden by the user to use a different logging mechanism.
+
+Trace and Debug Functions
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+There are some debug functions to dump the stack in glibc.
+The rte_panic() function can voluntarily provoke a SIG_ABORT,
+which can trigger the generation of a core file, readable by gdb.
+
+CPU Feature Identification
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The EAL can query the CPU at runtime (using the rte_cpu_get_feature() function) to determine which CPU features are available.
+
+User Space Interrupt and Alarm Handling
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The EAL creates a host thread to poll the UIO device file descriptors to detect the interrupts.
+Callbacks can be registered or unregistered by the EAL functions for a specific interrupt event
+and are called in the host thread asynchronously.
+The EAL also allows timed callbacks to be used in the same way as for NIC interrupts.
+
+.. note::
+
+ The only interrupts supported by the Intel® PDK Poll-Mode Drivers are those for link status change,
+ i.e. link up and link down notification.
+
+Blacklisting
+~~~~~~~~~~~~
+
+The EAL PCI device blacklist functionality can be used to mark certain NIC ports as blacklisted,
+so they are ignored by the Intel® DPDK.
+The ports to be blacklisted are identified using the PCIe* description (Domain:Bus:Device.Function).
+
+Misc Functions
+~~~~~~~~~~~~~~
+
+Locks and atomic operations are per-architecture (i686 and x86_64).
+
+Memory Segments and Memory Zones (memzone)
+------------------------------------------
+
+The mapping of physical memory is provided by this feature in the EAL.
+As physical memory can have gaps, the memory is described in a table of descriptors,
+and each descriptor (called rte_memseg ) describes a contiguous portion of memory.
+
+On top of this, the memzone allocator's role is to reserve contiguous portions of physical memory.
+These zones are identified by a unique name when the memory is reserved.
+
+The rte_memzone descriptors are also located in the configuration structure.
+This structure is accessed using rte_eal_get_configuration().
+The lookup (by name) of a memory zone returns a descriptor containing the physical address of the memory zone.
+
+Memory zones can be reserved with specific start address alignment by supplying the align parameter
+(by default, they are aligned to cache line size).
+The alignment value should be a power of two and not less than the cache line size (64 bytes).
+Memory zones can also be reserved from either 2 MB or 1 GB hugepages, provided that both are available on the system.
+
+.. |linuxapp_launch| image:: img/linuxapp_launch.svg
diff --git a/doc/guides/prog_guide/ext_app_lib_make_help.rst b/doc/guides/prog_guide/ext_app_lib_make_help.rst
new file mode 100644
index 0000000..84129d5
--- /dev/null
+++ b/doc/guides/prog_guide/ext_app_lib_make_help.rst
@@ -0,0 +1,125 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.. _External_Application/Library_Makefile_help:
+
+External Application/Library Makefile help
+==========================================
+
+External applications or libraries should include specific Makefiles from RTE_SDK, located in mk directory.
+These Makefiles are:
+
+* ${RTE_SDK}/mk/DPDK.extapp.mk: Build an application
+
+* ${RTE_SDK}/mk/DPDK.extlib.mk: Build a static library
+
+* ${RTE_SDK}/mk/DPDK.extobj.mk: Build objects (.o)
+
+Prerequisites
+-------------
+
+The following variables must be defined:
+
+* ${RTE_SDK}: Points to the root directory of the Intel® DPDK.
+
+* ${RTE_TARGET}: Reference the target to be used for compilation (for example, x86_64-native-linuxapp-gcc).
+
+Build Targets
+-------------
+
+Build targets support the specification of the name of the output directory, using O=mybuilddir.
+This is optional; the default output directory is build.
+
+* all, "nothing" (meaning just make)
+
+ Build the application or the library in the specified output directory.
+
+ Example:
+
+ .. code-block:: console
+
+ make O=mybuild
+
+* clean
+
+ Clean all objects created using make build.
+
+ Example:
+
+ .. code-block:: console
+
+ make clean O=mybuild
+
+Help Targets
+------------
+
+* help
+
+ Show this help.
+
+Other Useful Command-line Variables
+-----------------------------------
+
+The following variables can be specified at the command line:
+
+* S=
+
+ Specify the directory in which the sources are located. By default, it is the current directory.
+
+* M=
+
+ Specify the Makefile to call once the output directory is created. By default, it uses $(S)/Makefile.
+
+* V=
+
+ Enable verbose build (show full compilation command line and some intermediate commands).
+
+* D=
+
+ Enable dependency debugging. This provides some useful information about why a target must be rebuilt or not.
+
+* EXTRA_CFLAGS=, EXTRA_LDFLAGS=, EXTRA_ASFLAGS=, EXTRA_CPPFLAGS=
+
+ Append specific compilation, link or asm flags.
+
+* CROSS=
+
+ Specify a cross-toolchain header that will prefix all gcc/binutils applications. This only works when using gcc.
+
+Make from Another Directory
+---------------------------
+
+It is possible to run the Makefile from another directory, by specifying the output and the source dir. For example:
+
+.. code-block:: console
+
+ export RTE_SDK=/path/to/DPDK
+ export RTE_TARGET=x86_64-native-linuxapp-icc
+ make -f /path/to/my_app/Makefile S=/path/to/my_app O=/path/to/build_dir
diff --git a/doc/guides/prog_guide/extend_intel_dpdk.rst b/doc/guides/prog_guide/extend_intel_dpdk.rst
new file mode 100644
index 0000000..6affc67
--- /dev/null
+++ b/doc/guides/prog_guide/extend_intel_dpdk.rst
@@ -0,0 +1,136 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Extending the Intel® DPDK
+=========================
+
+This chapter describes how a developer can extend the Intel® DPDK to provide a new library,
+a new target, or support a new target.
+
+Example: Adding a New Library libfoo
+------------------------------------
+
+To add a new library to the Intel® DPDK, proceed as follows:
+
+#. Add a new configuration option:
+
+ .. code-block:: bash
+
+ for f in config/\*; do \
+ echo CONFIG_RTE_LIBFOO=y >> $f; done
+
+#. Create a new directory with sources:
+
+ .. code-block:: console
+
+ mkdir ${RTE_SDK}/lib/libfoo
+ touch ${RTE_SDK}/lib/libfoo/foo.c
+ touch ${RTE_SDK}/lib/libfoo/foo.h
+
+#. Add a foo() function in libfoo.
+
+ Definition is in foo.c:
+
+ .. code-block:: c
+
+ void foo(void)
+ {
+ }
+
+ Declaration is in foo.h:
+
+ .. code-block:: c
+
+ extern void foo(void);
+
+
+#. Update lib/Makefile:
+
+ .. code-block:: console
+
+ vi ${RTE_SDK}/lib/Makefile
+ # add:
+ # DIRS-$(CONFIG_RTE_LIBFOO) += libfoo
+
+#. Create a new Makefile for this library, for example, derived from mempool Makefile:
+
+ .. code-block:: console
+
+ cp ${RTE_SDK}/lib/librte_mempool/Makefile ${RTE_SDK}/lib/libfoo/
+
+ vi ${RTE_SDK}/lib/libfoo/Makefile
+ # replace:
+ # librte_mempool -> libfoo
+ # rte_mempool -> foo
+
+
+#. Update mk/DPDK.app.mk, and add -lfoo in LDLIBS variable when the option is enabled.
+ This will automatically add this flag when linking an Intel® DPDK application.
+
+
+#. Build the Intel® DPDK with the new library (we only show a specific target here):
+
+ .. code-block:: console
+
+ cd ${RTE_SDK}
+ make config T=x86_64-native-linuxapp-gcc
+ make
+
+
+#. Check that the library is installed:
+
+ .. code-block:: console
+
+ ls build/lib
+ ls build/include
+
+Example: Using libfoo in the Test Application
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The test application is used to validate all functionality of the Intel® DPDK.
+Once you have added a library, a new test case should be added in the test application.
+
+* A new test_foo.c file should be added, that includes foo.h and calls the foo() function from test_foo().
+ When the test passes, the test_foo() function should return 0.
+
+* Makefile, test.h and commands.c must be updated also, to handle the new test case.
+
+* Test report generation: autotest.py is a script that is used to generate the test report that is available in the
+ ${RTE_SDK}/doc/rst/test_report/autotests directory. This script must be updated also.
+ If libfoo is in a new test family, the links in ${RTE_SDK}/doc/rst/test_report/test_report.rst must be updated.
+
+* Build the Intel® DPDK with the updated test application (we only show a specific target here):
+
+
+ .. code-block:: console
+
+ cd ${RTE_SDK}
+ make config T=x86_64-native-linuxapp-gcc
+ make
diff --git a/doc/guides/prog_guide/glossary.rst b/doc/guides/prog_guide/glossary.rst
new file mode 100644
index 0000000..7215e04
--- /dev/null
+++ b/doc/guides/prog_guide/glossary.rst
@@ -0,0 +1,199 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Glossary
+========
+
+=============== =========================================================================================================
+Term Definition
+=============== =========================================================================================================
+ACL Access Control List
+
+API Application Programming Interface
+
+ASLR Linux* kernel Address-Space Layout Randomization
+
+BSD Berkeley Software Distribution
+
+Clr Clear
+
+CIDR Classless Inter-Domain Routing
+
+Control Plane The control plane is concerned with the routing of packets and with providing a start or end point.
+
+Core A core may include several lcores or threads if the processor supports hyperthreading.
+
+Core Components A set of libraries provided by the Intel® DPDK, including eal, ring, mempool, mbuf, timers, and so on.
+
+CPU Central Processing Unit
+
+CRC Cyclic Redundancy Check
+
+ctrlmbuf An *mbuf* carrying control data.
+
+Data Plane In contrast to the control plane,
+ the data plane in a network architecture are the layers involved when forwarding packets.
+ These layers must be highly optimized to achieve good performance.
+
+DIMM Dual In-line Memory Module
+
+Doxygen A documentation generator used in the Intel® DPDK to generate the API reference.
+
+DPDK Data Plane Development Kit
+
+DRAM Dynamic Random Access Memory
+
+EAL The Environment Abstraction Layer (EAL) provides a generic interface that hides the environment specifics
+ from the applications and libraries.
+ The services expected from the EAL are:
+ development kit loading and launching, core affinity/ assignment procedures,
+ system memory allocation/description, PCI bus access, inter-partition communication.
+
+FIFO First In First Out
+
+FPGA Field Programmable Gate Array
+
+GbE Gigabit Ethernet
+
+HW Hardware
+
+HPET High Precision Event Timer;
+ a hardware timer that provides a precise time reference on x86 platforms.
+
+ID Identifier
+
+IOCTL Input/Output Control
+
+I/O Input/Output
+
+IP Internet Protocol
+
+IPv4 Internet Protocol version 4
+
+IPv6 Internet Protocol version 6
+
+lcore A logical execution unit of the processor, sometimes called a *hardware thread*.
+
+KNI Kernel Network Interface
+
+L1 Layer 1
+
+L2 Layer 2
+
+L3 Layer 3
+
+L4 Layer 4
+
+LAN Local Area Network
+
+LPM Longest Prefix Match
+
+master lcore The execution unit that executes the main() function and that launches other lcores.
+
+mbuf An mbuf is a data structure used internally to carry messages (mainly network packets).
+ The name is derived from BSD stacks.
+ To understand the concepts of packet buffers or mbuf,
+ refer to *TCP/IP Illustrated, Volume 2: The Implementation*.
+
+MESI Modified Exclusive Shared Invalid (CPU cache coherency protocol)
+
+MTU Maximum Transfer Unit
+
+NIC Network Interface Card
+
+OOO Out Of Order (execution of instructions within the CPU pipeline)
+
+NUMA Non-uniform Memory Access
+
+PCI Peripheral Connect Interface
+
+PHY An abbreviation for the physical layer of the OSI model.
+
+pktmbuf An *mbuf* carrying a network packet.
+
+PMD Poll Mode Driver
+
+QoS Quality of Service
+
+RCU Read-Copy-Update algorithm, an alternative to simple rwlocks.
+
+Rd Read
+
+RED Random Early Detection
+
+RSS Receive Side Scaling
+
+RTE Run Time Environment.
+ Provides a fast and simple framework for fast packet processing,
+ in a lightweight environment as a Linux* application and
+ using Poll Mode Drivers (PMDs) to increase speed.
+
+Rx Reception
+
+Slave lcore Any *lcore* that is not the *master lcore*.
+
+Socket A physical CPU, that includes several *cores*.
+
+SLA Service Level Agreement
+
+srTCM Single Rate Three Color Marking
+
+SRTD Scheduler Round Trip Delay
+
+SW Software
+
+Target In the Intel® DPDK, the target is a combination of architecture,
+ machine, executive environment and toolchain.
+ For example: i686-native-linuxapp-gcc.
+
+TCP Transmission Control Protocol
+
+TC Traffic Class
+
+TLB Translation Lookaside Buffer
+
+TLS Thread Local Storage
+
+trTCM Two Rate Three Color Marking
+
+TSC Time Stamp Counter
+
+Tx Transmission
+
+TUN/TAP TUN and TAP are virtual network kernel devices.
+
+VLAN Virtual Local Area Network
+
+Wr Write
+
+WRED Weighted Random Early Detection
+
+WRR Weighted Round Robin
+=============== =========================================================================================================
diff --git a/doc/guides/prog_guide/hash_lib.rst b/doc/guides/prog_guide/hash_lib.rst
new file mode 100644
index 0000000..41d15da
--- /dev/null
+++ b/doc/guides/prog_guide/hash_lib.rst
@@ -0,0 +1,134 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.. _Hash_Library:
+
+Hash Library
+============
+
+The Intel® DPDK provides a Hash Library for creating hash table for fast lookup.
+The hash table is a data structure optimized for searching through a set of entries that are each identified by a unique key.
+For increased performance the Intel® DPDK Hash requires that all the keys have the same number of bytes which is set at the hash creation time.
+
+Hash API Overview
+-----------------
+
+The main configuration parameters for the hash are:
+
+* Total number of hash entries
+
+* Size of the key in bytes
+
+The hash also allows the configuration of some low-level implementation related parameters such as:
+
+* Hash function to translate the key into a bucket index
+
+* Number of entries per bucket
+
+The main methods exported by the hash are:
+
+* Add entry with key: The key is provided as input. If a new entry is successfully added to the hash for the specified key,
+ or there is already an entry in the hash for the specified key, then the position of the entry is returned.
+ If the operation was not successful, for example due to lack of free entries in the hash, then a negative value is returned;
+
+* Delete entry with key: The key is provided as input. If an entry with the specified key is found in the hash,
+ then the entry is removed from the hash and the position where the entry was found in the hash is returned.
+ If no entry with the specified key exists in the hash, then a negative value is returned
+
+* Lookup for entry with key: The key is provided as input. If an entry with the specified key is found in the hash (lookup hit),
+ then the position of the entry is returned, otherwise (lookup miss) a negative value is returned.
+
+The current hash implementation handles the key management only.
+The actual data associated with each key has to be managed by the user using a separate table that
+mirrors the hash in terms of number of entries and position of each entry,
+as shown in the Flow Classification use case describes in the following sections.
+
+The example hash tables in the L2/L3 Forwarding sample applications defines which port to forward a packet to based on a packet flow identified by the five-tuple lookup.
+However, this table could also be used for more sophisticated features and provide many other functions and actions that could be performed on the packets and flows.
+
+Implementation Details
+----------------------
+
+The hash table is implemented as an array of entries which is further divided into buckets,
+with the same number of consecutive array entries in each bucket.
+For any input key, there is always a single bucket where that key can be stored in the hash,
+therefore only the entries within that bucket need to be examined when the key is looked up.
+The lookup speed is achieved by reducing the number of entries to be scanned from the total
+number of hash entries down to the number of entries in a hash bucket,
+as opposed to the basic method of linearly scanning all the entries in the array.
+The hash uses a hash function (configurable) to translate the input key into a 4-byte key signature.
+The bucket index is the key signature modulo the number of hash buckets.
+Once the bucket is identified, the scope of the hash add,
+delete and lookup operations is reduced to the entries in that bucket.
+
+To speed up the search logic within the bucket, each hash entry stores the 4-byte key signature together with the full key for each hash entry.
+For large key sizes, comparing the input key against a key from the bucket can take significantly more time than
+comparing the 4-byte signature of the input key against the signature of a key from the bucket.
+Therefore, the signature comparison is done first and the full key comparison done only when the signatures matches.
+The full key comparison is still necessary, as two input keys from the same bucket can still potentially have the same 4-byte hash signature,
+although this event is relatively rare for hash functions providing good uniform distributions for the set of input keys.
+
+Use Case: Flow Classification
+-----------------------------
+
+Flow classification is used to map each input packet to the connection/flow it belongs to.
+This operation is necessary as the processing of each input packet is usually done in the context of their connection,
+so the same set of operations is applied to all the packets from the same flow.
+
+Applications using flow classification typically have a flow table to manage, with each separate flow having an entry associated with it in this table.
+The size of the flow table entry is application specific, with typical values of 4, 16, 32 or 64 bytes.
+
+Each application using flow classification typically has a mechanism defined to uniquely identify a flow based on
+a number of fields read from the input packet that make up the flow key.
+One example is to use the DiffServ 5-tuple made up of the following fields of the IP and transport layer packet headers:
+Source IP Address, Destination IP Address, Protocol, Source Port, Destination Port.
+
+The Intel® DPDK hash provides a generic method to implement an application specific flow classification mechanism.
+Given a flow table implemented as an array, the application should create a hash object with the same number of entries as the flow table and
+with the hash key size set to the number of bytes in the selected flow key.
+
+The flow table operations on the application side are described below:
+
+* Add flow: Add the flow key to hash.
+ If the returned position is valid, use it to access the flow entry in the flow table for adding a new flow or
+ updating the information associated with an existing flow.
+ Otherwise, the flow addition failed, for example due to lack of free entries for storing new flows.
+
+* Delete flow: Delete the flow key from the hash. If the returned position is valid,
+ use it to access the flow entry in the flow table to invalidate the information associated with the flow.
+
+* Lookup flow: Lookup for the flow key in the hash.
+ If the returned position is valid (flow lookup hit), use the returned position to access the flow entry in the flow table.
+ Otherwise (flow lookup miss) there is no flow registered for the current packet.
+
+References
+----------
+
+* Donald E. Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition), 1998, Addison-Wesley Professional
diff --git a/doc/guides/prog_guide/i40e_ixgbe_igb_virt_func_drv.rst b/doc/guides/prog_guide/i40e_ixgbe_igb_virt_func_drv.rst
new file mode 100644
index 0000000..cddeac1
--- /dev/null
+++ b/doc/guides/prog_guide/i40e_ixgbe_igb_virt_func_drv.rst
@@ -0,0 +1,553 @@
+.. BSD LICENSE
+ Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+I40E/IXGBE/IGB Virtual Function Driver
+======================================
+
+Supported Intel® Ethernet Controllers (see the *Intel® DPDK Release Notes* for details)
+support the following modes of operation in a virtualized environment:
+
+* **SR-IOV mode**: Involves direct assignment of part of the port resources to different guest operating systems
+ using the PCI-SIG Single Root I/O Virtualization (SR IOV) standard,
+ also known as "native mode" or"pass-through" mode.
+ In this chapter, this mode is referred to as IOV mode.
+
+* **VMDq mode**: Involves central management of the networking resources by an IO Virtual Machine (IOVM) or
+ a Virtual Machine Monitor (VMM), also known as software switch acceleration mode.
+ In this chapter, this mode is referred to as the Next Generation VMDq mode.
+
+SR-IOV Mode Utilization in an Intel® DPDK Environment
+-----------------------------------------------------
+
+The Intel® DPDK uses the SR-IOV feature for hardware-based I/O sharing in IOV mode.
+Therefore, it is possible to partition SR-IOV capability on Ethernet controller NIC resources logically and
+expose them to a virtual machine as a separate PCI function called a "Virtual Function".
+Refer to Figure 10.
+
+Therefore, a NIC is logically distributed among multiple virtual machines (as shown in Figure 10),
+while still having global data in common to share with the Physical Function and other Virtual Functions.
+The Intel® DPDK i40evf, igbvf or ixgbevf as a Poll Mode Driver (PMD) serves for the Intel® 82576 Gigabit Ethernet Controller,
+Intel® Ethernet Controller I350 family, Intel® 82599 10 Gigabit Ethernet Controller NIC,
+or Intel® Fortville 10/40 Gigabit Ethernet Controller NIC's virtual PCI function.
+Meanwhile the Intel® DPDK Poll Mode Driver (PMD) also supports "Physical Function" of such NIC's on the host.
+
+The Intel® DPDK PF/VF Poll Mode Driver (PMD) supports the Layer 2 switch on Intel® 82576 Gigabit Ethernet Controller,
+Intel® Ethernet Controller I350 family, Intel® 82599 10 Gigabit Ethernet Controller,
+and Intel® Fortville 10/40 Gigabit Ethernet Controller NICs so that guest can choose it for inter virtual machine traffic in SR-IOV mode.
+
+For more detail on SR-IOV, please refer to the following documents:
+
+* `SR-IOV provides hardware based I/O sharing <http://www.intel.com/network/connectivity/solutions/vmdc.htm>`_
+
+* `PCI-SIG-Single Root I/O Virtualization Support on IA
+ <http://www.intel.com/content/www/us/en/pci-express/pci-sig-single-root-io-virtualization-support-in-virtualization-technology-for-connectivity-paper.html>`_
+
+* `Scalable I/O Virtualized Servers <http://www.intel.com/content/www/us/en/virtualization/server-virtualization/scalable-i-o-virtualized-servers-paper.html>`_
+
+.. _pg_figure_10:
+
+**Figure 10. Virtualization for a Single Port NIC in SR-IOV Mode**
+
+.. image24_png has been renamed
+
+|single_port_nic|
+
+Physical and Virtual Function Infrastructure
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following describes the Physical Function and Virtual Functions infrastructure for the supported Ethernet Controller NICs.
+
+Virtual Functions operate under the respective Physical Function on the same NIC Port and therefore have no access
+to the global NIC resources that are shared between other functions for the same NIC port.
+
+A Virtual Function has basic access to the queue resources and control structures of the queues assigned to it.
+For global resource access, a Virtual Function has to send a request to the Physical Function for that port,
+and the Physical Function operates on the global resources on behalf of the Virtual Function.
+For this out-of-band communication, an SR-IOV enabled NIC provides a memory buffer for each Virtual Function,
+which is called a "Mailbox".
+
+Intel® Fortville 10/40 Gigabit Ethernet Controller VF Infrastructure
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In a virtualized environment, the programmer can enable a maximum of *128 Virtual Functions (VF)*
+globally per Intel® Fortville 10/40 Gigabit Ethernet Controller NIC device.
+Each VF can have a maximum of 16 queue pairs.
+The Physical Function in host could be either configured by the Linux* i40e driver
+(in the case of the Linux Kernel-based Virtual Machine [KVM]) or by DPDK PMD PF driver.
+When using both DPDK PMD PF/VF drivers, the whole NIC will be taken over by DPDK based application.
+
+For example,
+
+* Using Linux* i40e driver:
+
+ .. code-block:: console
+
+ rmmod i40e (To remove the i40e module)
+ insmod i40e.ko max_vfs=2,2 (To enable two Virtual Functions per port)
+
+* Using the Intel® DPDK PMD PF i40e driver:
+
+ Kernel Params: iommu=pt, intel_iommu=on
+
+ .. code-block:: console
+
+ modprobe uio
+ insmod igb_uio
+ ./dpdk_nic_bind.py -b igb_uio bb:ss.f
+ echo 2 > /sys/bus/pci/devices/0000\:bb\:ss.f/max_vfs (To enable two VFs on a specific PCI device)
+
+ Launch the Intel® DPDK testpmd/example or your own host daemon application using the Intel® DPDK PMD library.
+
+Virtual Function enumeration is performed in the following sequence by the Linux* pci driver for a dual-port NIC.
+When you enable the four Virtual Functions with the above command, the four enabled functions have a Function#
+represented by (Bus#, Device#, Function#) in sequence starting from 0 to 3.
+However:
+
+* Virtual Functions 0 and 2 belong to Physical Function 0
+
+* Virtual Functions 1 and 3 belong to Physical Function 1
+
+.. note::
+
+ The above is an important consideration to take into account when targeting specific packets to a selected port.
+
+Intel® 82599 10 Gigabit Ethernet Controller VF Infrastructure
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The programmer can enable a maximum of *63 Virtual Functions* and there must be *one Physical Function* per Intel® 82599
+10 Gigabit Ethernet Controller NIC port.
+The reason for this is that the device allows for a maximum of 128 queues per port and a virtual/physical function has to
+have at least one queue pair (RX/TX).
+The current implementation of the Intel® DPDK ixgbevf driver supports a single queue pair (RX/TX) per Virtual Function.
+The Physical Function in host could be either configured by the Linux* ixgbe driver
+(in the case of the Linux Kernel-based Virtual Machine [KVM]) or by DPDK PMD PF driver.
+When using both DPDK PMD PF/VF drivers, the whole NIC will be taken over by DPDK based application.
+
+For example,
+
+* Using Linux* ixgbe driver:
+
+ .. code-block:: console
+
+ rmmod ixgbe (To remove the ixgbe module)
+ insmod ixgbe max_vfs=2,2 (To enable two Virtual Functions per port)
+
+* Using the Intel® DPDK PMD PF ixgbe driver:
+
+ Kernel Params: iommu=pt, intel_iommu=on
+
+ .. code-block:: console
+
+ modprobe uio
+ insmod igb_uio
+ ./dpdk_nic_bind.py -b igb_uio bb:ss.f
+ echo 2 > /sys/bus/pci/devices/0000\:bb\:ss.f/max_vfs (To enable two VFs on a specific PCI device)
+
+ Launch the Intel® DPDK testpmd/example or your own host daemon application using the Intel® DPDK PMD library.
+
+Virtual Function enumeration is performed in the following sequence by the Linux* pci driver for a dual-port NIC.
+When you enable the four Virtual Functions with the above command, the four enabled functions have a Function#
+represented by (Bus#, Device#, Function#) in sequence starting from 0 to 3.
+However:
+
+* Virtual Functions 0 and 2 belong to Physical Function 0
+
+* Virtual Functions 1 and 3 belong to Physical Function 1
+
+.. note::
+
+ The above is an important consideration to take into account when targeting specific packets to a selected port.
+
+Intel® 82576 Gigabit Ethernet Controller and Intel® Ethernet Controller I350 Family VF Infrastructure
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In a virtualized environment, an Intel® 82576 Gigabit Ethernet Controller serves up to eight virtual machines (VMs).
+The controller has 16 TX and 16 RX queues.
+They are generally referred to (or thought of) as queue pairs (one TX and one RX queue).
+This gives the controller 16 queue pairs.
+
+A pool is a group of queue pairs for assignment to the same VF, used for transmit and receive operations.
+The controller has eight pools, with each pool containing two queue pairs, that is, two TX and two RX queues assigned to each VF.
+
+In a virtualized environment, an Intel® Ethernet Controller I350 family device serves up to eight virtual machines (VMs) per port.
+The eight queues can be accessed by eight different VMs if configured correctly (the i350 has 4x1GbE ports each with 8T X and 8 RX queues),
+that means, one Transmit and one Receive queue assigned to each VF.
+
+For example,
+
+* Using Linux* igb driver:
+
+ .. code-block:: console
+
+ rmmod igb (To remove the igb module)
+ insmod igb max_vfs=2,2 (To enable two Virtual Functions per port)
+
+* Using Intel® DPDK PMD PF igb driver:
+
+ Kernel Params: iommu=pt, intel_iommu=on modprobe uio
+
+ .. code-block:: console
+
+ insmod igb_uio
+ ./dpdk_nic_bind.py -b igb_uio bb:ss.f
+ echo 2 > /sys/bus/pci/devices/0000\:bb\:ss.f/max_vfs (To enable two VFs on a specific pci device)
+
+ Launch Intel® DPDK testpmd/example or your own host daemon application using the Intel® DPDK PMD library.
+
+Virtual Function enumeration is performed in the following sequence by the Linux* pci driver for a four-port NIC.
+When you enable the four Virtual Functions with the above command, the four enabled functions have a Function#
+represented by (Bus#, Device#, Function#) in sequence, starting from 0 to 7.
+However:
+
+* Virtual Functions 0 and 4 belong to Physical Function 0
+
+* Virtual Functions 1 and 5 belong to Physical Function 1
+
+* Virtual Functions 2 and 6 belong to Physical Function 2
+
+* Virtual Functions 3 and 7 belong to Physical Function 3
+
+.. note::
+
+ The above is an important consideration to take into account when targeting specific packets to a selected port.
+
+Validated Hypervisors
+~~~~~~~~~~~~~~~~~~~~~
+
+The validated hypervisor is:
+
+* KVM (Kernel Virtual Machine) with Qemu, version 0.14.0
+
+However, the hypervisor is bypassed to configure the Virtual Function devices using the Mailbox interface,
+the solution is hypervisor-agnostic.
+Xen* and VMware* (when SR- IOV is supported) will also be able to support the Intel® DPDK with Virtual Function driver support.
+
+Expected Guest Operating System in Virtual Machine
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The expected guest operating systems in a virtualized environment are:
+
+* Fedora* 14 (64-bit)
+
+* Ubuntu* 10.04 (64-bit)
+
+For supported kernel versions, refer to the *Intel® DPDK Release Notes*.
+
+Setting Up a KVM Virtual Machine Monitor
+----------------------------------------
+
+The following describes a target environment:
+
+* Host Operating System: Fedora 14
+
+* Hypervisor: KVM (Kernel Virtual Machine) with Qemu version 0.14.0
+
+* Guest Operating System: Fedora 14
+
+* Linux Kernel Version: Refer to the *Intel® DPDK Getting Started Guide*
+
+* Target Applications: l2fwd, l3fwd-vf
+
+The setup procedure is as follows:
+
+#. Before booting the Host OS, open **BIOS setup** and enable **Intel® VT features**.
+
+#. While booting the Host OS kernel, pass the intel_iommu=on kernel command line argument using GRUB.
+ When using Intel® DPDK PF driver on host, pass the iommu=pt kernel command line argument in GRUB.
+
+#. Download qemu-kvm-0.14.0 from
+ `http://sourceforge.net/projects/kvm/files/qemu-kvm/ <http://sourceforge.net/projects/kvm/files/qemu-kvm/>`_
+ and install it in the Host OS using the following steps:
+
+ When using a recent kernel (2.6.25+) with kvm modules included:
+
+ .. code-block:: console
+
+ tar xzf qemu-kvm-release.tar.gz
+ cd qemu-kvm-release
+ ./configure --prefix=/usr/local/kvm
+ make
+ sudo make install
+ sudo /sbin/modprobe kvm-intel
+
+ When using an older kernel, or a kernel from a distribution without the kvm modules,
+ you must download (from the same link), compile and install the modules yourself:
+
+ .. code-block:: console
+
+ tar xjf kvm-kmod-release.tar.bz2
+ cd kvm-kmod-release
+ ./configure
+ make
+ sudo make install
+ sudo /sbin/modprobe kvm-intel
+
+ qemu-kvm installs in the /usr/local/bin directory.
+
+ For more details about KVM configuration and usage, please refer to:
+
+ `http://www.linux-kvm.org/page/HOWTO1 <http://www.linux-kvm.org/page/HOWTO1>`_.
+
+#. Create a Virtual Machine and install Fedora 14 on the Virtual Machine.
+ This is referred to as the Guest Operating System (Guest OS).
+
+#. Download and install the latest ixgbe driver from:
+
+ `http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=14687 <http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=14687>`_
+
+#. In the Host OS
+
+ When using Linux kernel ixgbe driver, unload the Linux ixgbe driver and reload it with the max_vfs=2,2 argument:
+
+ .. code-block:: console
+
+ rmmod ixgbe
+ "modprobe ixgbe max_vfs=2,2"
+
+ When using DPDK PMD PF driver, insert Intel® DPDK kernel module igb_uio and set the number of VF by sysfs max_vfs:
+
+ .. code-block:: console
+
+ modprobe uio
+ insmod igb_uio
+ ./dpdk_nic_bind.py -b igb_uio 02:00.0 02:00.1 0e:00.0 0e:00.1
+ echo 2 > /sys/bus/pci/devices/0000\:02\:00.0/max_vfs
+ echo 2 > /sys/bus/pci/devices/0000\:02\:00.1/max_vfs
+ echo 2 > /sys/bus/pci/devices/0000\:0e\:00.0/max_vfs
+ echo 2 > /sys/bus/pci/devices/0000\:0e\:00.1/max_vfs
+
+ .. note::
+
+ You need to explicitly specify number of vfs for each port, for example,
+ in the command above, it creates two vfs for the first two ixgbe ports.
+
+ Let say we have a machine with four physical ixgbe ports:
+
+
+ 0000:02:00.0
+
+ 0000:02:00.1
+
+ 0000:0e:00.0
+
+ 0000:0e:00.1
+
+ The command above creates two vfs for device 0000:02:00.0:
+
+ .. code-block:: console
+
+ ls -alrt /sys/bus/pci/devices/0000\:02\:00.0/virt*
+ lrwxrwxrwx. 1 root root 0 Apr 13 05:40 /sys/bus/pci/devices/0000:02:00.0/ virtfn1 -> ../0000:02:10.2
+ lrwxrwxrwx. 1 root root 0 Apr 13 05:40 /sys/bus/pci/devices/0000:02:00.0/ virtfn0 -> ../0000:02:10.0
+
+ It also creates two vfs for device 0000:02:00.1:
+
+ .. code-block:: console
+
+ ls -alrt /sys/bus/pci/devices/0000\:02\:00.1/virt*
+ lrwxrwxrwx. 1 root root 0 Apr 13 05:51 /sys/bus/pci/devices/0000:02:00.1/
+ virtfn1 -> ../0000:02:10.3
+ lrwxrwxrwx. 1 root root 0 Apr 13 05:51 /sys/bus/pci/devices/0000:02:00.1/
+ virtfn0 -> ../0000:02:10.1
+
+#. List the PCI devices connected and notice that the Host OS shows two Physical Functions (traditional ports)
+ and four Virtual Functions (two for each port).
+ This is the result of the previous step.
+
+#. Insert the pci_stub module to hold the PCI devices that are freed from the default driver using the following command
+ (see http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM Section 4 for more information):
+
+ .. code-block:: console
+
+ sudo /sbin/modprobe pci-stub
+
+ Unbind the default driver from the PCI devices representing the Virtual Functions.
+ A script to perform this action is as follows:
+
+ .. code-block:: console
+
+ echo "8086 10ed" > /sys/bus/pci/drivers/pci-stub/new_id
+ echo 0000:08:10.0 > /sys/bus/pci/devices/0000:08:10.0/driver/unbind
+ echo 0000:08:10.0 > /sys/bus/pci/drivers/pci-stub/bind
+
+ where, 0000:08:10.0 belongs to the Virtual Function visible in the Host OS.
+
+#. Now, start the Virtual Machine by running the following command:
+
+ .. code-block:: console
+
+ /usr/local/kvm/bin/qemu-system-x86_64 -m 4096 -smp 4 -boot c -hda lucid.qcow2 -device pci-assign,host=08:10.0
+
+ where:
+
+ — -m = memory to assign
+
+ — -smp = number of smp cores
+
+ — -boot = boot option
+
+ — -hda = virtual disk image
+
+ — -device = device to attach
+
+ .. note::
+
+ — The pci-assign,host=08:10.0 alue indicates that you want to attach a PCI device
+ to a Virtual Machine and the respective (Bus:Device.Function)
+ numbers should be passed for the Virtual Function to be attached.
+
+ — qemu-kvm-0.14.0 allows a maximum of four PCI devices assigned to a VM,
+ but this is qemu-kvm version dependent since qemu-kvm-0.14.1 allows a maximum of five PCI devices.
+
+ — qemu-system-x86_64 also has a -cpu command line option that is used to select the cpu_model
+ to emulate in a Virtual Machine. Therefore, it can be used as:
+
+ .. code-block:: console
+
+ /usr/local/kvm/bin/qemu-system-x86_64 -cpu ?
+
+ (to list all available cpu_models)
+
+ /usr/local/kvm/bin/qemu-system-x86_64 -m 4096 -cpu host -smp 4 -boot c -hda lucid.qcow2 -device pci-assign,host=08:10.0
+
+ (to use the same cpu_model equivalent to the host cpu)
+
+ For more information, please refer to: `http://wiki.qemu.org/Features/CPUModels <http://wiki.qemu.org/Features/CPUModels>`_.
+
+#. Install and run DPDK host app to take over the Physical Function. Eg.
+
+ .. code-block:: console
+
+ make install T=x86_64-native-linuxapp-gcc
+ ./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i
+
+#. Finally, access the Guest OS using vncviewer with the localhost:5900 port and check the lspci command output in the Guest OS.
+ The virtual functions will be listed as available for use.
+
+#. Configure and install the Intel® DPDK with an x86_64-native-linuxapp-gcc configuration on the Guest OS as normal,
+ that is, there is no change to the normal installation procedure.
+
+ .. code-block:: console
+
+ make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc
+ cd x86_64-native-linuxapp-gcc
+ make
+
+.. note::
+
+ If you are unable to compile the Intel® DPDK and you are getting "error: CPU you selected does not support x86-64 instruction set",
+ power off the Guest OS and start the virtual machine with the correct -cpu option in the qemu- system-x86_64 command as shown in step 9.
+ You must select the best x86_64 cpu_model to emulate or you can select host option if available.
+
+.. note::
+
+ Run the Intel® DPDK l2fwd sample application in the Guest OS with Hugepages enabled.
+ For the expected benchmark performance, you must pin the cores from the Guest OS to the Host OS (taskset can be used to do this) and
+ you must also look at the PCI Bus layout on the board to ensure you are not running the traffic over the QPI Inteface.
+
+.. note::
+
+ * The Virtual Machine Manager (the Fedora package name is virt-manager) is a utility for virtual machine management
+ that can also be used to create, start, stop and delete virtual machines.
+ If this option is used, step 2 and 6 in the instructions provided will be different.
+
+ * virsh, a command line utility for virtual machine management,
+ can also be used to bind and unbind devices to a virtual machine in Ubuntu.
+ If this option is used, step 6 in the instructions provided will be different.
+
+ * The Virtual Machine Monitor (see Figure 11) is equivalent to a Host OS with KVM installed as described in the instructions.
+
+.. _pg_figure_11:
+
+**Figure 11. Performance Benchmark Setup**
+
+.. image25_png has been renamed
+
+|perf_benchmark|
+
+Intel® DPDK SR-IOV PMD PF/VF Driver Usage Model
+-----------------------------------------------
+
+Fast Host-based Packet Processing
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Software Defined Network (SDN) trends are demanding fast host-based packet handling.
+In a virtualization environment,
+the Intel® DPDK VF PMD driver performs the same throughput result as a non-VT native environment.
+
+With such host instance fast packet processing, lots of services such as filtering, QoS,
+DPI can be offloaded on the host fast path.
+
+shows the scenario where some VMs directly communicate externally via a VFs,
+while others connect to a virtual switch and share the same uplink bandwidth.
+
+.. _pg_figure_12:
+
+**Figure 12. Fast Host-based Packet Processing**
+
+.. image26_png has been renamed
+
+|fast_pkt_proc|
+
+SR-IOV (PF/VF) Approach for Inter-VM Communication
+--------------------------------------------------
+
+Inter-VM data communication is one of the traffic bottle necks in virtualization platforms.
+SR-IOV device assignment helps a VM to attach the real device, taking advantage of the bridge in the NIC.
+So VF-to-VF traffic within the same physical port (VM0<->VM1) have hardware acceleration.
+However, when VF crosses physical ports (VM0<->VM2), there is no such hardware bridge.
+In this case, the Intel® DPDK PMD PF driver provides host forwarding between such VMs.
+
+Figure 13 shows an example.
+In this case an update of the MAC address lookup tables in both the NIC and host Intel® DPDK application is required.
+
+In the NIC, writing the destination of a MAC address belongs to another cross device VM to the PF specific pool.
+So when a packet comes in, its destination MAC address will match and forward to the host Intel® DPDK PMD application.
+
+In the host Intel® DPDK application, the behavior is similar to L2 forwarding,
+that is, the packet is forwarded to the correct PF pool.
+The SR-IOV NIC switch forwards the packet to a specific VM according to the MAC destination address
+which belongs to the destination VF on the VM.
+
+.. _pg_figure_13:
+
+**Figure 13. Inter-VM Communication**
+
+.. image27_png has been renamed
+
+|inter_vm_comms|
+
+.. |perf_benchmark| image:: img/perf_benchmark.png
+
+.. |single_port_nic| image:: img/single_port_nic.png
+
+.. |inter_vm_comms| image:: img/inter_vm_comms.png
+
+.. |fast_pkt_proc| image:: img/fast_pkt_proc.png
diff --git a/doc/guides/prog_guide/img/architecture-overview.svg b/doc/guides/prog_guide/img/architecture-overview.svg
new file mode 100644
index 0000000..c0f85bf
--- /dev/null
+++ b/doc/guides/prog_guide/img/architecture-overview.svg
@@ -0,0 +1,1011 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="635.30798"
+ height="570.86243"
+ id="svg14043"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="architecture-overview.svg"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/architecture.png"
+ inkscape:export-xdpi="176.10001"
+ inkscape:export-ydpi="176.10001">
+ <defs
+ id="defs14045">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path4058"
+ 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="Arrow1Mstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mstart"
+ style="overflow:visible">
+ <path
+ id="path4437"
+ 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="path14797"
+ 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
+ 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="perspective14051" />
+ <inkscape:perspective
+ id="perspective14061"
+ 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="perspective14096"
+ 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="perspective14096-8"
+ 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="perspective14096-4"
+ 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="perspective14096-2"
+ 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="perspective14096-26"
+ 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="perspective14176"
+ 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="perspective14204"
+ 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="perspective15450"
+ 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="perspective15488"
+ 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="perspective15547"
+ 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="perspective15591"
+ 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="perspective15666"
+ 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="perspective15741"
+ 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="perspective15811"
+ 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="perspective15833"
+ 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="perspective15833-6"
+ 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="perspective15833-0"
+ 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="perspective15833-8"
+ 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="perspective15833-09"
+ 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="perspective15833-80"
+ 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="perspective3331"
+ 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="perspective3353"
+ 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="perspective3147"
+ 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="path14797-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="perspective3147-4"
+ 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-5"
+ style="overflow:visible">
+ <path
+ id="path14797-0"
+ 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="perspective3147-2"
+ 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-0"
+ style="overflow:visible">
+ <path
+ id="path14797-6"
+ 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="perspective4712"
+ 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-5"
+ style="overflow:visible">
+ <path
+ id="path4437-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>
+ <inkscape:perspective
+ id="perspective4768"
+ 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-9"
+ style="overflow:visible">
+ <path
+ id="path4437-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="perspective3098"
+ 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="perspective3123"
+ 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="perspective3148"
+ 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" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="350.05313"
+ inkscape:cy="253.33451"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1116"
+ inkscape:window-height="1059"
+ inkscape:window-x="502"
+ inkscape:window-y="5"
+ inkscape:window-maximized="0"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1" />
+ <metadata
+ id="metadata14048">
+ <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(-13.525282,-9.9128498)">
+ <rect
+ style="fill:#000000;fill-opacity:0.10041839;stroke:none"
+ id="rect15785-3"
+ width="206.63405"
+ height="186.88545"
+ x="13.625282"
+ y="355.8284"
+ rx="25.958084"
+ ry="32.630138"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504" />
+ <rect
+ style="fill:#000000;fill-opacity:0.10041839;stroke:none"
+ id="rect15785"
+ width="190.11443"
+ height="227.2632"
+ x="242.76669"
+ y="353.41208"
+ rx="25.958084"
+ ry="32.630138"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504" />
+ <rect
+ style="fill:#000000;fill-opacity:0.10041839;stroke:none"
+ id="rect15785-1"
+ width="188.80969"
+ height="271.01321"
+ x="243.41907"
+ y="76.721405"
+ rx="25.958084"
+ ry="32.630138"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504" />
+ <rect
+ style="fill:#000000;fill-opacity:0.10041839;stroke:none"
+ id="rect15785-1-3"
+ width="186.89807"
+ height="171.30821"
+ x="23.493267"
+ y="152.36273"
+ rx="25.958084"
+ ry="32.630138"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504" />
+ <rect
+ style="fill:#000000;fill-opacity:0.10041839;stroke:none"
+ id="rect15785-1-4"
+ width="194.58926"
+ height="169.67664"
+ x="454.14401"
+ y="10.01285"
+ rx="25.958084"
+ ry="32.630138"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504" />
+ <rect
+ style="fill:#000000;fill-opacity:0.10041839;stroke:none"
+ id="rect15785-1-5"
+ width="193.38757"
+ height="203.93829"
+ x="454.74484"
+ y="199.21135"
+ rx="25.958084"
+ ry="32.630138"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504" />
+ <rect
+ style="fill:#000000;fill-opacity:0.10041839;stroke:none"
+ id="rect15785-1-2-0"
+ width="185.60017"
+ height="137.04657"
+ x="458.63852"
+ y="432.4848"
+ rx="25.958084"
+ ry="32.630138"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504" />
+ <g
+ id="g14229"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="matrix(1.2848591,0,0,1.6151089,-288.29741,-857.02037)">
+ <rect
+ ry="7.0710678"
+ rx="8.586297"
+ y="756.77777"
+ x="252.9953"
+ height="44.501003"
+ width="124.80181"
+ id="rect2837-4-06-5"
+ style="fill:#c3c4ff;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <text
+ id="text14084"
+ y="781.64789"
+ x="285.35715"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="781.64789"
+ x="285.35715"
+ id="tspan14086"
+ sodipodi:role="line">rte_malloc</tspan></text>
+ </g>
+ <g
+ id="g14234"
+ transform="matrix(1.2848591,0,0,1.6151089,-66.98918,-730.50352)"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504">
+ <rect
+ ry="7.0710678"
+ rx="8.586297"
+ y="678.20636"
+ x="252.66327"
+ height="44.501003"
+ width="124.80181"
+ id="rect2837-4-06-5-3"
+ style="fill:#c3c4ff;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <text
+ id="text14084-0"
+ y="703.07648"
+ x="283.86636"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="703.07648"
+ x="283.86636"
+ id="tspan14086-7"
+ sodipodi:role="line">rte_eal + libc</tspan></text>
+ </g>
+ <g
+ id="g14239"
+ transform="matrix(1.2848591,0,0,1.6151089,165.66317,-754.1564)"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504">
+ <rect
+ ry="7.0710678"
+ rx="8.586297"
+ y="600.34924"
+ x="237.84637"
+ height="44.501003"
+ width="124.80181"
+ id="rect2837-4-06-5-6"
+ style="fill:#c3c4ff;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <text
+ id="text14084-8"
+ y="625.21936"
+ x="275.35715"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="625.21936"
+ x="275.35715"
+ id="tspan14086-8"
+ sodipodi:role="line">rte_ring</tspan></text>
+ </g>
+ <g
+ id="g14254"
+ transform="matrix(1.2848591,0,0,1.6151089,-388.59024,-722.81247)"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504">
+ <rect
+ ry="7.0710678"
+ rx="8.586297"
+ y="588.20636"
+ x="502.9639"
+ height="44.501003"
+ width="124.80181"
+ id="rect2837-4-06-5-31"
+ style="fill:#c3c4ff;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <text
+ id="text14084-4"
+ y="613.07648"
+ x="526.78571"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="613.07648"
+ x="526.78571"
+ id="tspan14086-9"
+ sodipodi:role="line">rte_mempool</tspan></text>
+ </g>
+ <g
+ id="g14244"
+ transform="matrix(1.2848591,0,0,1.6151089,160.86376,-719.73612)"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504">
+ <rect
+ ry="7.0710678"
+ rx="8.586297"
+ y="501.06354"
+ x="241.58173"
+ height="44.501003"
+ width="124.80181"
+ id="rect2837-4-06-5-0"
+ style="fill:#c3c4ff;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <text
+ id="text14084-6"
+ y="525.93365"
+ x="275.35715"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="525.93365"
+ x="275.35715"
+ id="tspan14086-89"
+ sodipodi:role="line">rte_mbuf</tspan></text>
+ </g>
+ <g
+ id="g15423"
+ transform="matrix(1.2848591,0,0,1.6151089,-52.842661,-589.8906)"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504">
+ <rect
+ ry="7.0710678"
+ rx="8.586297"
+ y="510.82596"
+ x="69.741951"
+ height="44.501003"
+ width="124.80181"
+ id="rect2837-4-06-5-0-0-7"
+ style="fill:#c3c4ff;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <text
+ id="text14084-6-4-1"
+ y="535.69611"
+ x="103.23904"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="535.69611"
+ x="103.23904"
+ id="tspan14086-89-8-7"
+ sodipodi:role="line">rte_timer</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44055104px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:none"
+ d="m 257.64752,400.95017 -60.52887,0.10538"
+ id="path14259"
+ inkscape:connector-type="polyline"
+ inkscape:connection-start="#g14234"
+ inkscape:connection-end="#g14229"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end-point="d4"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44055104px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="M 500.0555,287.34697 389.20701,364.87361"
+ id="path14261"
+ inkscape:connector-type="polyline"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ inkscape:connection-end="#g14234"
+ inkscape:connection-start="#g14239"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end-point="d4"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44024909;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart-9);marker-end:none"
+ d="M 469.93838,257.33479 418.9627,257.1672"
+ id="path14263"
+ inkscape:connector-type="polyline"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44024909;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart-9);marker-end:url(#Arrow1Mend)"
+ d="m 337.82388,299.07882 1e-5,65.79479"
+ id="path14265"
+ inkscape:connector-type="polyline"
+ inkscape:connection-start="#g14254"
+ inkscape:connection-end="#g14234"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end-point="d4"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44055104px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 51.331468,66.475997 58.736412,0"
+ id="path15233"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="62.267147"
+ y="84.593857"
+ id="text15419"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ id="tspan15421"
+ x="62.267147"
+ y="84.593857">X uses Y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="56.602165"
+ y="417.21744"
+ id="text15436"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ id="tspan15438"
+ x="56.602165"
+ y="417.21744">Allocation of named</tspan><tspan
+ sodipodi:role="line"
+ x="56.602165"
+ y="435.22433"
+ id="tspan15440">memory zones using</tspan><tspan
+ sodipodi:role="line"
+ x="56.602165"
+ y="453.2312"
+ id="tspan3464">libc's malloc()</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="278.89865"
+ y="419.93082"
+ id="text15436-2"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ x="278.89865"
+ y="419.93082"
+ id="tspan3092">Environment abstraction</tspan><tspan
+ sodipodi:role="line"
+ x="278.89865"
+ y="437.93771"
+ id="tspan3129">layer: RTE loading, memory</tspan><tspan
+ sodipodi:role="line"
+ x="278.89865"
+ y="455.94458"
+ id="tspan3096">allocation, time reference,</tspan><tspan
+ sodipodi:role="line"
+ x="278.89865"
+ y="473.95148"
+ id="tspan3102">PCI access, logging</tspan><tspan
+ sodipodi:role="line"
+ x="278.89865"
+ y="491.95837"
+ id="tspan3104" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="49.941029"
+ y="158.51849"
+ id="text15436-2-2"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ x="49.941029"
+ y="158.51849"
+ id="tspan15537">Timer facilities. Based</tspan><tspan
+ sodipodi:role="line"
+ x="49.941029"
+ y="176.52538"
+ id="tspan3238">on HPET interface that</tspan><tspan
+ sodipodi:role="line"
+ x="49.941029"
+ y="194.53227"
+ id="tspan3240">is provided by EAL.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="288.36832"
+ y="101.2496"
+ id="text15436-2-2-5"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ x="288.36832"
+ y="101.2496"
+ id="tspan15537-9">Handle a pool of objects</tspan><tspan
+ sodipodi:role="line"
+ x="288.36832"
+ y="119.25649"
+ id="tspan15575">using a ring to store</tspan><tspan
+ sodipodi:role="line"
+ x="288.36832"
+ y="137.26338"
+ id="tspan15581">them. Allow bulk</tspan><tspan
+ sodipodi:role="line"
+ x="288.36832"
+ y="155.27026"
+ id="tspan15775">enqueue/dequeue and</tspan><tspan
+ sodipodi:role="line"
+ x="288.36832"
+ y="173.27716"
+ id="tspan15781">per-CPU cache.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="534.00629"
+ y="297.33395"
+ id="text15436-2-2-5-0"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ x="534.00629"
+ y="297.33395"
+ id="tspan15581-1">Fixed-size lockless </tspan><tspan
+ sodipodi:role="line"
+ x="534.00629"
+ y="315.34085"
+ id="tspan15634">FIFO for storing objects</tspan><tspan
+ sodipodi:role="line"
+ x="534.00629"
+ y="333.34772"
+ id="tspan15656">in a table.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="529.16345"
+ y="33.516106"
+ id="text15436-2-2-5-0-1"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ x="529.16345"
+ y="33.516106"
+ id="tspan15719">Manipulation of packet</tspan><tspan
+ sodipodi:role="line"
+ x="529.16345"
+ y="51.522995"
+ id="tspan15727">buffers carrying network</tspan><tspan
+ sodipodi:role="line"
+ x="529.16345"
+ y="69.529877"
+ id="tspan3246">data.</tspan></text>
+ <rect
+ style="fill:#c3c4ff;fill-opacity:1;stroke:#000000;stroke-width:1.44055104;stroke-opacity:1"
+ id="rect2837-4-06-5-0-0-9"
+ width="160.35275"
+ height="71.873962"
+ x="471.26224"
+ y="445.24567"
+ rx="11.032183"
+ ry="11.420545"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="581.71051"
+ y="432.95102"
+ id="text14084-6-4-4"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ id="tspan14086-89-8-78"
+ x="581.71051"
+ y="432.95102">rte_debug</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="533.41541"
+ y="480.62653"
+ id="text15432-4"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ id="tspan15434-5"
+ x="533.41541"
+ y="480.62653">Provides debug helpers</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44055104px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend);display:inline"
+ d="M 472.46111,451.46754 416.80139,430.5257"
+ id="path14261-1"
+ inkscape:connector-type="polyline"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ inkscape:connection-start="#rect2837-4-06-5-0-0-9"
+ inkscape:connection-end="#g14234"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end-point="d4"
+ inkscape:connector-curvature="0" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3225"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ transform="matrix(1.066935,0,0,1.3411713,-43.506194,-197.99784)"><flowRegion
+ id="flowRegion3227"><rect
+ id="rect3229"
+ width="7.1428571"
+ height="12.857142"
+ x="157.14285"
+ y="171.6479" /></flowRegion><flowPara
+ id="flowPara3231" /></flowRoot> <path
+ style="fill:none;stroke:#000000;stroke-width:1.44055104px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:none;display:inline"
+ d="M 276.63415,364.87361 178.13203,307.02292"
+ id="path14259-4"
+ inkscape:connector-type="polyline"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ inkscape:connection-end="#g15423"
+ inkscape:connection-start="#g14234"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end-point="d4"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.44055104px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:none;display:inline"
+ d="m 393.58574,227.20486 102.091,-65.79483"
+ id="path14259-4-7"
+ inkscape:connector-type="polyline"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ inkscape:connection-end="#g14244"
+ inkscape:connection-start="#g14254"
+ inkscape:connection-start-point="d4"
+ inkscape:connection-end-point="d4"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="41.768562"
+ y="63.652237"
+ id="text15419-1"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ id="tspan15421-7"
+ x="41.768562"
+ y="63.652237">X</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.40550995px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="134.9883"
+ y="62.797791"
+ id="text15419-9"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture.png"
+ inkscape:export-xdpi="300.7504"
+ inkscape:export-ydpi="300.7504"
+ transform="scale(0.89192198,1.1211743)"><tspan
+ sodipodi:role="line"
+ id="tspan15421-4"
+ x="134.9883"
+ y="62.797791">Y</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/blk_diag_dropper.png b/doc/guides/prog_guide/img/blk_diag_dropper.png
new file mode 100644
index 0000000..d2ef8fe
--- /dev/null
+++ b/doc/guides/prog_guide/img/blk_diag_dropper.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/console.png b/doc/guides/prog_guide/img/console.png
new file mode 100644
index 0000000..9942334
--- /dev/null
+++ b/doc/guides/prog_guide/img/console.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/data_struct_per_port.png b/doc/guides/prog_guide/img/data_struct_per_port.png
new file mode 100644
index 0000000..ab80052
--- /dev/null
+++ b/doc/guides/prog_guide/img/data_struct_per_port.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/dpdk_xen_pkt_switch.png b/doc/guides/prog_guide/img/dpdk_xen_pkt_switch.png
new file mode 100644
index 0000000..32a6d16
--- /dev/null
+++ b/doc/guides/prog_guide/img/dpdk_xen_pkt_switch.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/drop_probability_eq3.png b/doc/guides/prog_guide/img/drop_probability_eq3.png
new file mode 100644
index 0000000..790f0a3
--- /dev/null
+++ b/doc/guides/prog_guide/img/drop_probability_eq3.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/drop_probability_eq4.png b/doc/guides/prog_guide/img/drop_probability_eq4.png
new file mode 100644
index 0000000..ef8e765
--- /dev/null
+++ b/doc/guides/prog_guide/img/drop_probability_eq4.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/drop_probability_graph.png b/doc/guides/prog_guide/img/drop_probability_graph.png
new file mode 100644
index 0000000..e6e1898
--- /dev/null
+++ b/doc/guides/prog_guide/img/drop_probability_graph.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/eq2_expression.png b/doc/guides/prog_guide/img/eq2_expression.png
new file mode 100644
index 0000000..6ffe6c2
--- /dev/null
+++ b/doc/guides/prog_guide/img/eq2_expression.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/eq2_factor.png b/doc/guides/prog_guide/img/eq2_factor.png
new file mode 100644
index 0000000..ff8c901
--- /dev/null
+++ b/doc/guides/prog_guide/img/eq2_factor.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/ewma_filter_eq_1.png b/doc/guides/prog_guide/img/ewma_filter_eq_1.png
new file mode 100644
index 0000000..de6955b
--- /dev/null
+++ b/doc/guides/prog_guide/img/ewma_filter_eq_1.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/ewma_filter_eq_2.png b/doc/guides/prog_guide/img/ewma_filter_eq_2.png
new file mode 100644
index 0000000..465a6e6
--- /dev/null
+++ b/doc/guides/prog_guide/img/ewma_filter_eq_2.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/ex_data_flow_tru_dropper.png b/doc/guides/prog_guide/img/ex_data_flow_tru_dropper.png
new file mode 100644
index 0000000..184bc57
--- /dev/null
+++ b/doc/guides/prog_guide/img/ex_data_flow_tru_dropper.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/fast_pkt_proc.png b/doc/guides/prog_guide/img/fast_pkt_proc.png
new file mode 100644
index 0000000..48d57e5
--- /dev/null
+++ b/doc/guides/prog_guide/img/fast_pkt_proc.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/figure32.png b/doc/guides/prog_guide/img/figure32.png
new file mode 100644
index 0000000..5215113
--- /dev/null
+++ b/doc/guides/prog_guide/img/figure32.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/figure33.png b/doc/guides/prog_guide/img/figure33.png
new file mode 100644
index 0000000..f0670eb
--- /dev/null
+++ b/doc/guides/prog_guide/img/figure33.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/figure34.png b/doc/guides/prog_guide/img/figure34.png
new file mode 100644
index 0000000..caa2517
--- /dev/null
+++ b/doc/guides/prog_guide/img/figure34.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/figure35.png b/doc/guides/prog_guide/img/figure35.png
new file mode 100644
index 0000000..42053f0
--- /dev/null
+++ b/doc/guides/prog_guide/img/figure35.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/figure37.png b/doc/guides/prog_guide/img/figure37.png
new file mode 100644
index 0000000..20be4aa
--- /dev/null
+++ b/doc/guides/prog_guide/img/figure37.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/figure38.png b/doc/guides/prog_guide/img/figure38.png
new file mode 100644
index 0000000..261c561
--- /dev/null
+++ b/doc/guides/prog_guide/img/figure38.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/figure39.png b/doc/guides/prog_guide/img/figure39.png
new file mode 100644
index 0000000..d2db6a4
--- /dev/null
+++ b/doc/guides/prog_guide/img/figure39.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/flow_tru_droppper.png b/doc/guides/prog_guide/img/flow_tru_droppper.png
new file mode 100644
index 0000000..5c8fe1c
--- /dev/null
+++ b/doc/guides/prog_guide/img/flow_tru_droppper.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/forward_stats.png b/doc/guides/prog_guide/img/forward_stats.png
new file mode 100644
index 0000000..23e3532
--- /dev/null
+++ b/doc/guides/prog_guide/img/forward_stats.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/grant_refs.png b/doc/guides/prog_guide/img/grant_refs.png
new file mode 100644
index 0000000..baa34e1
--- /dev/null
+++ b/doc/guides/prog_guide/img/grant_refs.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/grant_table.png b/doc/guides/prog_guide/img/grant_table.png
new file mode 100644
index 0000000..c23e5fa
--- /dev/null
+++ b/doc/guides/prog_guide/img/grant_table.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/hier_sched_blk.png b/doc/guides/prog_guide/img/hier_sched_blk.png
new file mode 100644
index 0000000..876d072
--- /dev/null
+++ b/doc/guides/prog_guide/img/hier_sched_blk.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/host_vm_comms.png b/doc/guides/prog_guide/img/host_vm_comms.png
new file mode 100644
index 0000000..4e0b3c9
--- /dev/null
+++ b/doc/guides/prog_guide/img/host_vm_comms.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/host_vm_comms_qemu.png b/doc/guides/prog_guide/img/host_vm_comms_qemu.png
new file mode 100644
index 0000000..391a4ea
--- /dev/null
+++ b/doc/guides/prog_guide/img/host_vm_comms_qemu.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/inter_vm_comms.png b/doc/guides/prog_guide/img/inter_vm_comms.png
new file mode 100644
index 0000000..6d85ece
--- /dev/null
+++ b/doc/guides/prog_guide/img/inter_vm_comms.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/ivshmem.png b/doc/guides/prog_guide/img/ivshmem.png
new file mode 100644
index 0000000..2b34a2c
--- /dev/null
+++ b/doc/guides/prog_guide/img/ivshmem.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/kernel_nic_intf.png b/doc/guides/prog_guide/img/kernel_nic_intf.png
new file mode 100644
index 0000000..2408cc3
--- /dev/null
+++ b/doc/guides/prog_guide/img/kernel_nic_intf.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/kni_traffic_flow.png b/doc/guides/prog_guide/img/kni_traffic_flow.png
new file mode 100644
index 0000000..a7e7496
--- /dev/null
+++ b/doc/guides/prog_guide/img/kni_traffic_flow.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/link_bonding.png b/doc/guides/prog_guide/img/link_bonding.png
new file mode 100644
index 0000000..6843879
--- /dev/null
+++ b/doc/guides/prog_guide/img/link_bonding.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/linuxapp_launch.svg b/doc/guides/prog_guide/img/linuxapp_launch.svg
new file mode 100644
index 0000000..0ac450d
--- /dev/null
+++ b/doc/guides/prog_guide/img/linuxapp_launch.svg
@@ -0,0 +1,762 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="715.39966"
+ height="974.03418"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="linuxapp_launch.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/linuxapp_launch.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ version="1.1">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path3253"
+ 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="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path3256"
+ 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
+ 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="perspective10" />
+ <inkscape:perspective
+ id="perspective4899"
+ 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="perspective6015"
+ 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="perspective6043"
+ 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" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.89337592"
+ inkscape:cx="400.16263"
+ inkscape:cy="614.41381"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1258"
+ inkscape:window-height="1059"
+ inkscape:window-x="470"
+ inkscape:window-y="13"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-maximized="0"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid11504"
+ originx="-22.363911px"
+ originy="-49.872292px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-22.363911,-28.455727)">
+ <rect
+ style="fill:#604d92;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2383"
+ width="306.92932"
+ height="972.64362"
+ x="22.963911"
+ y="29.183212"
+ ry="43.684753" />
+ <rect
+ style="fill:#b4acca;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2391"
+ width="191.47"
+ height="972.83417"
+ x="545.69354"
+ y="29.055731"
+ ry="43.693989" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 277.14286,395.62831 280,-2.85714"
+ id="path4074"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#8979b4;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2389"
+ width="191.47"
+ height="972.81195"
+ x="344.11838"
+ y="29.055727"
+ ry="43.692989" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="114.71806"
+ y="46.6479"
+ id="text3163"><tspan
+ sodipodi:role="line"
+ id="tspan3165"
+ x="114.71806"
+ y="46.6479">Master lcore</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="397.4306"
+ y="48.213886"
+ id="text3167"><tspan
+ sodipodi:role="line"
+ id="tspan3169"
+ x="397.4306"
+ y="48.213886">lcore 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="601.32257"
+ y="48.213886"
+ id="text3171"><tspan
+ sodipodi:role="line"
+ id="tspan3173"
+ x="601.32257"
+ y="48.213886">lcore 2</tspan></text>
+ <rect
+ style="fill:#87838b;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3168"
+ width="220"
+ height="52.857143"
+ x="66.428574"
+ y="65.219322"
+ ry="26.428572" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="151.26277"
+ y="97.927193"
+ id="text3170"><tspan
+ sodipodi:role="line"
+ id="tspan3172"
+ x="151.26277"
+ y="97.927193">main()</tspan></text>
+ <rect
+ style="fill:#87838b;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3174"
+ width="218.91513"
+ height="413.35095"
+ x="66.971016"
+ y="142.19034"
+ ry="22.480219" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="124.07087"
+ y="165.26439"
+ id="text3176"><tspan
+ sodipodi:role="line"
+ id="tspan3178"
+ x="124.07087"
+ y="165.26439">rte_eal_init()</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3180"
+ width="203.60904"
+ height="107.7429"
+ x="74.624046"
+ y="183.37459"
+ ry="26.447386" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="98.615913"
+ y="204.89751"
+ id="text3182"
+ transform="scale(0.96168464,1.0398419)"><tspan
+ sodipodi:role="line"
+ id="tspan3184"
+ x="98.615913"
+ y="204.89751">rte_eal_memory_init()</tspan><tspan
+ sodipodi:role="line"
+ x="98.615913"
+ y="224.89751"
+ id="tspan5208">rte_eal_logs_init()</tspan><tspan
+ sodipodi:role="line"
+ x="98.615913"
+ y="244.89751"
+ id="tspan5212">rte_eal_pci_init()</tspan><tspan
+ sodipodi:role="line"
+ x="98.615913"
+ y="264.89752"
+ id="tspan5210">...</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3186"
+ width="203.60905"
+ height="52.894772"
+ x="74.624046"
+ y="302.60443"
+ ry="26.447386" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="104.23375"
+ y="333.24323"
+ id="text3188"><tspan
+ sodipodi:role="line"
+ id="tspan3190"
+ x="104.23375"
+ y="333.24323">pthread_create(1)</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3192"
+ width="203.60905"
+ height="52.894772"
+ x="74.624046"
+ y="363.83432"
+ ry="26.447386" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="103.1144"
+ y="394.47311"
+ id="text3194"><tspan
+ sodipodi:role="line"
+ id="tspan3196"
+ x="103.1144"
+ y="394.47311">pthread_create(2)</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3210"
+ width="167.98228"
+ height="52.982288"
+ x="355.86224"
+ y="303.42288"
+ ry="26.491144" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="420.80188"
+ y="265.99127"
+ id="text3212"
+ transform="scale(0.9075576,1.1018584)"><tspan
+ sodipodi:role="line"
+ id="tspan3214"
+ x="420.80188"
+ y="265.99127" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="375.75665"
+ y="334.62936"
+ id="text3216"><tspan
+ sodipodi:role="line"
+ id="tspan3218"
+ x="375.75665"
+ y="334.62936">per-thread init</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3220"
+ width="167.98228"
+ height="52.982288"
+ x="355.86224"
+ y="371.99429"
+ ry="26.491144" />
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="419.4346"
+ y="403.76044"
+ id="text3222"><tspan
+ sodipodi:role="line"
+ id="tspan3224"
+ x="419.4346"
+ y="403.76044">wait</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="377.87292"
+ y="555.20081"
+ id="text3240"><tspan
+ sodipodi:role="line"
+ id="tspan3242"
+ x="377.87292"
+ y="555.20081" /></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 278.57143,327.05689 78.57143,0"
+ id="path3248"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 439.85338,355.62831 0,15.71429"
+ id="path4028"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect4036"
+ width="167.98228"
+ height="52.982288"
+ x="557.43738"
+ y="365.56577"
+ ry="26.491144" />
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="577.33179"
+ y="396.77225"
+ id="text4038"><tspan
+ sodipodi:role="line"
+ id="tspan4040"
+ x="577.33179"
+ y="396.77225">per-thread init</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect4042"
+ width="167.98228"
+ height="52.982288"
+ x="557.43738"
+ y="434.13718"
+ ry="26.491144" />
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="623.0097"
+ y="465.90332"
+ id="text4044"><tspan
+ sodipodi:role="line"
+ id="tspan4046"
+ x="623.0097"
+ y="465.90332">wait</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="579.44806"
+ y="617.34363"
+ id="text4062"><tspan
+ sodipodi:role="line"
+ id="tspan4064"
+ x="579.44806"
+ y="617.34363" /></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 641.42854,417.77117 0,15.71429"
+ id="path4066"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect6679"
+ width="203.60905"
+ height="52.894772"
+ x="74.624046"
+ y="491.46262"
+ ry="26.447386" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="123.98553"
+ y="504.03085"
+ id="text6681"
+ transform="scale(0.96168465,1.0398419)"><tspan
+ sodipodi:role="line"
+ id="tspan6683"
+ x="123.98553"
+ y="504.03085">wait all threads</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 164.14979,669.48699 0,19.22028 477.29708,4.04061 0,38.38579"
+ id="path7745"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 439.85338,691.73772 0,34.34519"
+ id="path7747"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8791"
+ width="167.98228"
+ height="52.982288"
+ x="355.86224"
+ y="728.88623"
+ ry="26.491144" />
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="389.93277"
+ y="749.95862"
+ id="text8793"><tspan
+ sodipodi:role="line"
+ id="tspan8795"
+ x="389.93277"
+ y="749.95862">per_lcore_</tspan><tspan
+ sodipodi:role="line"
+ x="389.93277"
+ y="772.45862"
+ id="tspan5168"> app_init()</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8797"
+ width="167.98228"
+ height="52.982288"
+ x="557.43738"
+ y="732.92682"
+ ry="26.491144" />
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="590.38855"
+ y="753.99927"
+ id="text8799"><tspan
+ sodipodi:role="line"
+ x="590.38855"
+ y="753.99927"
+ id="tspan8833">per_lcore_</tspan><tspan
+ sodipodi:role="line"
+ x="590.38855"
+ y="776.49927"
+ id="tspan5170"> app_init()</tspan></text>
+ <rect
+ style="fill:#87838b;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8803"
+ width="220.00066"
+ height="52.788116"
+ x="66.428246"
+ y="697.25879"
+ ry="15.788192" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="78.448273"
+ y="727.84424"
+ id="text8805"><tspan
+ sodipodi:role="line"
+ id="tspan8807"
+ x="78.448273"
+ y="727.84424">rte_eal_mp_wait_lcore()</tspan></text>
+ <rect
+ style="fill:#d3a3a3;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8815"
+ width="219.87608"
+ height="66.805687"
+ x="66.490532"
+ y="906.68427"
+ ry="14.994844" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="176.6356"
+ y="936.16522"
+ id="text8817"><tspan
+ sodipodi:role="line"
+ id="tspan8819"
+ x="176.6356"
+ y="936.16522">application</tspan><tspan
+ sodipodi:role="line"
+ x="176.6356"
+ y="956.16522"
+ id="tspan10929">...</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8821"
+ width="167.98228"
+ height="52.982288"
+ x="355.86224"
+ y="805.65778"
+ ry="26.491144" />
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="417.3515"
+ y="837.36407"
+ id="text8823"><tspan
+ sodipodi:role="line"
+ id="tspan8825"
+ x="417.3515"
+ y="837.36407">wait</tspan></text>
+ <rect
+ style="fill:#a09a9a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8827"
+ width="167.98228"
+ height="52.982288"
+ x="557.43738"
+ y="808.68823"
+ ry="26.491144" />
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="618.36694"
+ y="838.71545"
+ id="text8829"><tspan
+ sodipodi:role="line"
+ id="tspan8831"
+ x="618.36694"
+ y="838.71545">wait</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 439.85338,781.6413 0,24.24366"
+ id="path8837"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 641.42854,785.93445 0,21.97082"
+ id="path9360"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 439.6689,858.91797 0.25253,19.69797 -125.76399,0.50508 0.50508,-142.43151 -27.7792,0"
+ id="path10404"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 440.17397,878.36341 201.02036,-0.75762 0,-15.9099"
+ id="path10927"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 176.42857,117.466 0,25.25382"
+ id="path10931"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 176.42857,235.65385 0,8.5863"
+ id="path10933"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#d3a3a3;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect10949"
+ width="167.16183"
+ height="66.948586"
+ x="356.27246"
+ y="906.61279"
+ ry="15.026918" />
+ <rect
+ style="fill:#d3a3a3;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect10957"
+ width="167.16183"
+ height="66.948586"
+ x="557.84766"
+ y="906.61279"
+ ry="15.026918" />
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="641.66144"
+ y="935.67499"
+ id="text10965"><tspan
+ sodipodi:role="line"
+ id="tspan10967"
+ x="641.66144"
+ y="935.67499">application</tspan><tspan
+ sodipodi:role="line"
+ x="641.66144"
+ y="958.17499"
+ id="tspan10969">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="440.0863"
+ y="935.67499"
+ id="text10971"><tspan
+ sodipodi:role="line"
+ id="tspan10973"
+ x="440.0863"
+ y="935.67499">application</tspan><tspan
+ sodipodi:role="line"
+ x="440.0863"
+ y="958.17499"
+ id="tspan10975">...</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 176.42857,750.13065 0,145.7957"
+ id="path11526"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#87838b;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect11518"
+ width="220.00066"
+ height="52.788116"
+ x="66.428246"
+ y="827.83875"
+ ry="15.788192" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="69.303398"
+ y="858.42419"
+ id="text11520"><tspan
+ sodipodi:role="line"
+ id="tspan11522"
+ x="69.303398"
+ y="858.42419">rte_eal_remote_lauch(app)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 176.30173,890.61234 0,15.67127"
+ id="path11530"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 176.58157,899.28751 464.54106,0 0,6.9961"
+ id="path11532"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 439.85338,899.28751 0,7.55579"
+ id="path11534"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#87838b;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect11518-9"
+ width="220.00066"
+ height="52.788116"
+ x="67.976265"
+ y="623.56195"
+ ry="15.788192" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="87.641663"
+ y="644.07324"
+ id="text11520-3"><tspan
+ sodipodi:role="line"
+ id="tspan11522-1"
+ x="87.641663"
+ y="644.07324">rte_eal_remote_lauch(</tspan><tspan
+ sodipodi:role="line"
+ x="87.641663"
+ y="664.07324"
+ id="tspan5214"> per_lcore_app_init)</tspan></text>
+ <rect
+ style="fill:#87838b;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect8803-9-8"
+ width="220.00066"
+ height="52.788116"
+ x="67.976265"
+ y="563.67676"
+ ry="15.788192" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="85.033371"
+ y="594.26215"
+ id="text8805-4-4"><tspan
+ sodipodi:role="line"
+ id="tspan8807-7-5"
+ x="85.033371"
+ y="594.26215">other inits (libs, drivers)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 641.94701,486.88444 0,44.21431 -355.11367,-0.55968"
+ id="path6065"
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 439.76448,424.90046 0,106.33822"
+ id="path6253"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/m_definition.png b/doc/guides/prog_guide/img/m_definition.png
new file mode 100644
index 0000000..d05e881
--- /dev/null
+++ b/doc/guides/prog_guide/img/m_definition.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/malloc_heap.png b/doc/guides/prog_guide/img/malloc_heap.png
new file mode 100644
index 0000000..4449fda
--- /dev/null
+++ b/doc/guides/prog_guide/img/malloc_heap.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/mbuf1.svg b/doc/guides/prog_guide/img/mbuf1.svg
new file mode 100644
index 0000000..0b8ff00
--- /dev/null
+++ b/doc/guides/prog_guide/img/mbuf1.svg
@@ -0,0 +1,584 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="631.91431"
+ height="288.34286"
+ id="svg3868"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="mbuf1.svg"
+ sodipodi:version="0.32"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs3870">
+ <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" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4513"
+ id="linearGradient4519"
+ x1="47.142857"
+ y1="244.50504"
+ x2="677.85718"
+ y2="244.50504"
+ gradientUnits="userSpaceOnUse" />
+ <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>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8"
+ inkscape:cx="424.95386"
+ inkscape:cy="143.63151"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1650"
+ inkscape:window-height="1059"
+ inkscape:window-x="177"
+ inkscape:window-y="111"
+ inkscape:window-maximized="0"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1" />
+ <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:url(#linearGradient4519);fill-opacity:1;stroke:#000000;stroke-opacity:1"
+ id="rect3697"
+ width="630.71429"
+ height="287.14285"
+ x="47.142857"
+ y="100.93361"
+ rx="6.757"
+ ry="6.757" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.26876688;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2896"
+ width="308.0022"
+ height="58.000771"
+ x="253.55229"
+ y="197.48174"
+ ry="11.60514"
+ rx="11.60514"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112" />
+ <rect
+ style="fill:#b93a3a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect2898"
+ width="174.71004"
+ height="58.000679"
+ x="349.47122"
+ y="197.48174"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ rx="8.5874939"
+ ry="8.5874939" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 357.26687,268.98771 c 141.42583,0 105.6555,0 164.91182,0"
+ id="path2904"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.26876688;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2910"
+ width="60.59267"
+ height="51.656937"
+ x="255.93231"
+ y="200.90929"
+ ry="8.5874939"
+ rx="8.5874939"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.22520161px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="452.7626"
+ y="374.68066"
+ id="text2912"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"><tspan
+ sodipodi:role="line"
+ x="452.7626"
+ y="374.68066"
+ id="tspan2916"
+ style="font-weight:bold">rte_mbuf (type is pkt)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+ d="M 270.40246,239.43649 C 273.9494,287.74619 176.1143,278.684 176.1143,278.684"
+ id="path2974"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+ d="m 339.73824,127.0486 c 18.96656,9.93299 12.80457,67.17793 12.80457,67.17793"
+ id="path2976"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.22520161px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="99.327995"
+ y="317.25745"
+ id="text2978"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"><tspan
+ sodipodi:role="line"
+ x="99.327995"
+ y="317.25745"
+ id="tspan3006" /></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+ d="m 263.28446,331.99662 c 39.26122,1.88113 54.28327,-61.82392 54.28327,-61.82392"
+ id="path2974-8"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="187.85715"
+ y="335.2193"
+ id="text5215"><tspan
+ sodipodi:role="line"
+ id="tspan5217"
+ x="187.85715"
+ y="335.2193">m-&gt;buf_addr</tspan><tspan
+ sodipodi:role="line"
+ x="187.85715"
+ y="347.7193"
+ id="tspan5240">(m-&gt;buf_physaddr is the</tspan><tspan
+ sodipodi:role="line"
+ x="187.85715"
+ y="360.2193"
+ id="tspan5242">corresponding physical address)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="249.28572"
+ y="119.50503"
+ id="text5219"><tspan
+ sodipodi:role="line"
+ id="tspan5221"
+ x="249.28572"
+ y="119.50503">rte_pktmbuf_mtod(m)</tspan><tspan
+ sodipodi:role="line"
+ x="249.28572"
+ y="132.00504"
+ id="tspan5223">or m-&gt;pkt.data</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="271.42859"
+ y="210.93361"
+ id="text5248"><tspan
+ sodipodi:role="line"
+ id="tspan5250"
+ x="271.42859"
+ y="210.93361">mbuf</tspan><tspan
+ sodipodi:role="line"
+ x="271.42859"
+ y="223.43361"
+ id="tspan5252">struct</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="82.14286"
+ y="293.07645"
+ id="text5254"><tspan
+ sodipodi:role="line"
+ id="tspan5256"
+ x="82.14286"
+ y="293.07645">m-&gt;pkt.next = NULL</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="372.14285"
+ y="282.64789"
+ id="text5258"><tspan
+ sodipodi:role="line"
+ id="tspan5260"
+ x="372.14285"
+ y="282.64789">rte_pktmbuf_pktlen(m)</tspan><tspan
+ sodipodi:role="line"
+ x="372.14285"
+ y="295.14789"
+ id="tspan5262">or rte_pktmbuf_datalen(m)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 323.25837,215.46035 c 141.42583,0 -35.05878,0 24.19754,0"
+ id="path2904-6"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="319.56296"
+ y="231.04784"
+ id="text5258-1"><tspan
+ sodipodi:role="line"
+ x="319.56296"
+ y="231.04784"
+ id="tspan5262-6">headroom</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 526.20982,215.46035 c 141.42583,0 -25.77306,0 33.48326,0"
+ id="path2904-6-5"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="520.37152"
+ y="231.04784"
+ id="text5258-1-5"><tspan
+ sodipodi:role="line"
+ x="520.37152"
+ y="231.04784"
+ id="tspan5262-6-4">tailroom</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 2;stroke-dashoffset:0"
+ d="m 318.57143,197.71932 0,69.28572"
+ id="path7127"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/mbuf2.svg b/doc/guides/prog_guide/img/mbuf2.svg
new file mode 100644
index 0000000..49553be
--- /dev/null
+++ b/doc/guides/prog_guide/img/mbuf2.svg
@@ -0,0 +1,1263 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="631.91431"
+ height="288.34286"
+ id="svg3868"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="mbuf2.svg"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf2.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200"
+ sodipodi:version="0.32"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs3870">
+ <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="perspective4304"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path3211-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.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-6"
+ style="overflow:visible">
+ <path
+ id="path3208-9"
+ 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="marker4312"
+ style="overflow:visible">
+ <path
+ id="path4314"
+ 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="marker4316"
+ style="overflow:visible">
+ <path
+ id="path4318"
+ 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="marker4320"
+ style="overflow:visible">
+ <path
+ id="path4322"
+ 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="perspective4304-6"
+ 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-8"
+ style="overflow:visible">
+ <path
+ id="path3211-8"
+ 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-4"
+ style="overflow:visible">
+ <path
+ id="path3208-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.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker4312-1"
+ style="overflow:visible">
+ <path
+ id="path4314-4"
+ 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="marker4316-9"
+ style="overflow:visible">
+ <path
+ id="path4318-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.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker4320-0"
+ style="overflow:visible">
+ <path
+ id="path4322-6"
+ 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="perspective4456"
+ 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-2"
+ style="overflow:visible">
+ <path
+ id="path3211-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.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <inkscape:perspective
+ id="perspective4484"
+ 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="perspective4509"
+ 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-61"
+ style="overflow:visible">
+ <path
+ id="path3211-59"
+ 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="perspective4558"
+ 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="perspective3279"
+ 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="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-9"
+ style="overflow:visible">
+ <path
+ id="path3208-31"
+ 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="Arrow1Lend-9"
+ style="overflow:visible">
+ <path
+ id="path3211-4"
+ 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="perspective3313"
+ 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="perspective3338"
+ 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="perspective5616"
+ 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"
+ 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>
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5624"
+ style="overflow:visible">
+ <path
+ id="path5626"
+ 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="marker5628"
+ style="overflow:visible">
+ <path
+ id="path5630"
+ 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="marker5632"
+ style="overflow:visible">
+ <path
+ id="path5634"
+ 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="marker5636"
+ style="overflow:visible">
+ <path
+ id="path5638"
+ 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="marker5640"
+ style="overflow:visible">
+ <path
+ id="path5642"
+ 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="marker5644"
+ style="overflow:visible">
+ <path
+ id="path5646"
+ 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="marker5648"
+ style="overflow:visible">
+ <path
+ id="path5650"
+ 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
+ inkscape:collect="always"
+ xlink:href="#linearGradient4513"
+ id="linearGradient4519"
+ x1="47.142857"
+ y1="244.50504"
+ x2="677.85718"
+ y2="244.50504"
+ gradientUnits="userSpaceOnUse" />
+ <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>
+ <linearGradient
+ gradientTransform="translate(17.806842,326.00779)"
+ y2="244.50504"
+ x2="677.85718"
+ y1="244.50504"
+ x1="47.142857"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5687"
+ xlink:href="#linearGradient4513"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective6744"
+ 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-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>
+ <inkscape:perspective
+ id="perspective6772"
+ 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-5"
+ style="overflow:visible">
+ <path
+ id="path4533-4"
+ 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="perspective6802"
+ 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-44"
+ 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="perspective6830"
+ 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-7"
+ style="overflow:visible">
+ <path
+ id="path4533-8"
+ 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="perspective6864"
+ 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="perspective6889"
+ 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="perspective6926"
+ 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-9"
+ style="overflow:visible">
+ <path
+ id="path4533-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>
+ <inkscape:perspective
+ id="perspective6963"
+ 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="perspective6995"
+ 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-9"
+ 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-48"
+ 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="perspective7029"
+ 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-1"
+ style="overflow:visible">
+ <path
+ id="path4530-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>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-2"
+ 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="perspective7074"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path4530-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="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-59"
+ style="overflow:visible">
+ <path
+ id="path4533-49"
+ 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="perspective7074-7"
+ 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-7"
+ style="overflow:visible">
+ <path
+ id="path4530-11"
+ 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-597"
+ style="overflow:visible">
+ <path
+ id="path4533-76"
+ 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>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="349.23531"
+ inkscape:cy="97.526166"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1650"
+ inkscape:window-height="1059"
+ inkscape:window-x="100"
+ inkscape:window-y="17"
+ inkscape:window-maximized="0"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1" />
+ <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(-64.349699,-426.34141)">
+ <rect
+ style="fill:url(#linearGradient5687);fill-opacity:1;stroke:#000000;stroke-opacity:1"
+ id="rect3697"
+ width="630.71429"
+ height="287.14285"
+ x="64.949699"
+ y="426.94141"
+ rx="6.757"
+ ry="6.757" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.73872942;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2896"
+ width="179.33183"
+ height="33.770489"
+ x="111.0281"
+ y="537.48676"
+ ry="6.7570004"
+ rx="6.7570004"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200" />
+ <rect
+ style="fill:#b93a3a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect2898"
+ width="119.42986"
+ height="33.770508"
+ x="169.26131"
+ y="537.48676"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200"
+ rx="4.3271284"
+ ry="5" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.73872942;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2910"
+ width="35.279602"
+ height="30.076841"
+ x="113.57833"
+ y="539.33356"
+ ry="5"
+ rx="5"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#marker5648)"
+ d="m 125.12469,563.52674 c 2.06519,75.98508 108.79908,120.50695 185.10147,9.9944"
+ id="path2974"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.73872942;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2896-3"
+ width="179.33183"
+ height="33.770489"
+ x="304.61978"
+ y="537.48676"
+ ry="6.7570004"
+ rx="6.7570004"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200" />
+ <rect
+ style="fill:#b93a3a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect2898-7"
+ width="137.28705"
+ height="33.770508"
+ x="344.99582"
+ y="537.48676"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200"
+ rx="5"
+ ry="5" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.73872942;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2910-7"
+ width="35.279602"
+ height="30.076841"
+ x="307.17001"
+ y="539.33356"
+ ry="5"
+ rx="5"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.73872942;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2896-8"
+ width="179.33183"
+ height="33.770489"
+ x="496.04834"
+ y="537.48676"
+ ry="6.7570004"
+ rx="6.7570004"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200" />
+ <rect
+ style="fill:#b93a3a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect2898-9"
+ width="101.5728"
+ height="33.770508"
+ x="534.99585"
+ y="537.48676"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200"
+ rx="5"
+ ry="5" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.73872942;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2910-5"
+ width="35.279602"
+ height="30.076841"
+ x="498.59857"
+ y="539.33356"
+ ry="5"
+ rx="5"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#marker5648)"
+ d="m 323.19397,564.19918 c 2.06519,75.98508 173.08478,89.07838 185.10146,9.9944"
+ id="path2974-6"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#marker5648)"
+ d="m 519.12036,562.95397 c 4.39975,33.26738 10.7052,43.94422 27.24434,62.13727"
+ id="path2976-1-4"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.22520161px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="331.85513"
+ y="704.97418"
+ id="text2912"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"><tspan
+ sodipodi:role="line"
+ x="331.85513"
+ y="704.97418"
+ id="tspan2916"
+ style="font-weight:bold">multi-segmented rte_mbuf (type is pkt)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+ d="m 119.23004,564.01527 c 101.10943,109.21871 189.23315,8.60651 189.23315,8.60651"
+ id="path2976-3-7"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+ d="m 312.98114,565.49459 c 101.10943,109.21871 189.23315,8.60651 189.23315,8.60651"
+ id="path2976-3-7-0"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+ d="m 509.59959,565.53369 c -3.54694,48.3097 82.1453,49.9618 82.1453,49.9618"
+ id="path2974-9-6"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="527.19458"
+ y="628.45935"
+ id="text5254-8"><tspan
+ sodipodi:role="line"
+ id="tspan5256-8"
+ x="527.19458"
+ y="628.45935">m-&gt;pkt.next = NULL</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="330.50363"
+ y="628.45935"
+ id="text5254-8-4"><tspan
+ sodipodi:role="line"
+ id="tspan5256-8-3"
+ x="330.50363"
+ y="628.45935">m-&gt;pkt.next = mseg3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="144.79388"
+ y="628.45935"
+ id="text5254-8-4-1"><tspan
+ sodipodi:role="line"
+ id="tspan5256-8-3-4"
+ x="144.79388"
+ y="628.45935">m-&gt;pkt.next = mseg2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="113.85714"
+ y="529.92017"
+ id="text6906"><tspan
+ sodipodi:role="line"
+ id="tspan6908"
+ x="113.85714"
+ y="529.92017">m</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="310.42856"
+ y="529.79077"
+ id="text6910"><tspan
+ sodipodi:role="line"
+ id="tspan6912"
+ x="310.42856"
+ y="529.79077">mseg2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="501.85715"
+ y="529.79077"
+ id="text6914"><tspan
+ sodipodi:role="line"
+ id="tspan6916"
+ x="501.85715"
+ y="529.79077">mseg3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+ d="m 158.74072,504.12577 c 12.53799,12.07585 14.94743,31.46365 14.94743,31.46365"
+ id="path2976-3-0"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="78.288223"
+ y="493.72507"
+ id="text5219-6"><tspan
+ sodipodi:role="line"
+ id="tspan5221-8"
+ x="78.288223"
+ y="493.72507">rte_pktmbuf_mtod(m)</tspan><tspan
+ sodipodi:role="line"
+ x="78.288223"
+ y="506.22507"
+ id="tspan5223-9">or m-&gt;pkt.data</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="311.4537"
+ y="447.16037"
+ id="text5258-2"><tspan
+ sodipodi:role="line"
+ x="311.4537"
+ y="447.16037"
+ id="tspan5262-64">rte_pktmbuf_pktlen(m) = rte_pktmbuf_datalen(m) +</tspan><tspan
+ sodipodi:role="line"
+ x="311.4537"
+ y="459.66037"
+ id="tspan6985">rte_pktmbuf_datalen(mseg2) + rte_pktmbuf_datalen(mseg3)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 173.97266,470.21933 c 141.42583,0 391.36979,0 450.62611,0"
+ id="path2904-5-7"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 175.25836,577.20906 c 141.42583,0 49.22693,0 108.48325,0"
+ id="path2904-5-2"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="153.42009"
+ y="590.86926"
+ id="text5258-26"><tspan
+ sodipodi:role="line"
+ x="153.42009"
+ y="590.86926"
+ id="tspan5262-0">rte_pktmbuf_datalen(m)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 348.97266,577.20906 c 141.42583,0 69.22693,0 128.48325,0"
+ id="path2904-5-2-0"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="345.56296"
+ y="590.86926"
+ id="text5258-26-9"><tspan
+ sodipodi:role="line"
+ x="345.56296"
+ y="590.86926"
+ id="tspan5262-0-1">rte_pktmbuf_datalen(m)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.26900005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 539.68695,577.20906 c 141.42582,0 33.51263,0 92.76895,0"
+ id="path2904-5-2-7"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="537.1344"
+ y="590.86926"
+ id="text5258-26-3"><tspan
+ sodipodi:role="line"
+ x="537.1344"
+ y="590.86926"
+ id="tspan5262-0-6">rte_pktmbuf_datalen(m)</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/memory-management.svg b/doc/guides/prog_guide/img/memory-management.svg
new file mode 100644
index 0000000..3dbd526
--- /dev/null
+++ b/doc/guides/prog_guide/img/memory-management.svg
@@ -0,0 +1,2164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="717.5954"
+ height="165.08948"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="memory-management.svg"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/memory-management.png"
+ inkscape:export-xdpi="112.90476"
+ inkscape:export-ydpi="112.90476">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mstart"
+ style="overflow:visible">
+ <path
+ id="path4669"
+ 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="path4672"
+ 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="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path4666"
+ 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
+ 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="perspective10" />
+ <inkscape:perspective
+ id="perspective3600"
+ 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="perspective3622"
+ 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="perspective3622-1"
+ 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="perspective3622-7"
+ 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="perspective3622-4"
+ 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="perspective3622-0"
+ 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="perspective3622-10"
+ 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="perspective3622-3"
+ 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="perspective3622-06"
+ 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="perspective3622-5"
+ 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="perspective3622-76"
+ 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="perspective3622-9"
+ 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="perspective3622-45"
+ 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="perspective3622-47"
+ 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="perspective3622-43"
+ 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="perspective3622-78"
+ 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="perspective3622-8"
+ 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="perspective3622-14"
+ 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="perspective3622-068"
+ 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="perspective3622-6"
+ 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="perspective3622-50"
+ 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="perspective3622-71"
+ 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="perspective3824"
+ 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="perspective3824-5"
+ 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="perspective4093"
+ 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="perspective4288"
+ 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="perspective4288-7"
+ 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="perspective4344"
+ 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="perspective4369"
+ 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="perspective4394"
+ 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="perspective4394-2"
+ 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="perspective4394-0"
+ 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="perspective4441"
+ 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="perspective4441-2"
+ 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="perspective4441-7"
+ 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="perspective4441-8"
+ 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="perspective4441-9"
+ 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="perspective4441-80"
+ 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="perspective4521"
+ 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="perspective4521-1"
+ 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="perspective4521-0"
+ 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="perspective4568"
+ 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="perspective4568-6"
+ 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="perspective4568-7"
+ 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="perspective4615"
+ 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="perspective4615-9"
+ 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="perspective4615-8"
+ 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="perspective5304"
+ 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-1"
+ style="overflow:visible">
+ <path
+ id="path4672-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>
+ <inkscape:perspective
+ id="perspective5338"
+ 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-0"
+ style="overflow:visible">
+ <path
+ id="path4672-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="perspective5366"
+ 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="perspective5391"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path4672-9"
+ 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="perspective5711"
+ 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="perspective5800"
+ 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="perspective5970"
+ 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" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="302.43951"
+ inkscape:cy="258.00849"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="958"
+ inkscape:window-height="1059"
+ inkscape:window-x="672"
+ inkscape:window-y="41"
+ inkscape:window-maximized="0"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-9.3094651,-454.23034)">
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590"
+ width="28.148262"
+ height="14.074131"
+ x="79.394798"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-9"
+ width="28.148262"
+ height="14.074131"
+ x="107.54305"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-3"
+ width="28.148262"
+ height="14.074131"
+ x="135.6913"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-94"
+ width="28.148262"
+ height="14.074131"
+ x="163.83957"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-8"
+ width="28.148262"
+ height="14.074131"
+ x="191.98785"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-5"
+ width="28.148262"
+ height="14.074131"
+ x="220.13611"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-36"
+ width="28.148262"
+ height="14.074131"
+ x="248.28436"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-6"
+ width="28.148262"
+ height="14.074131"
+ x="276.43262"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-2"
+ width="28.148262"
+ height="14.074131"
+ x="304.5809"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-1"
+ width="28.148262"
+ height="14.074131"
+ x="332.72913"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-54"
+ width="28.148262"
+ height="14.074131"
+ x="360.87741"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-56"
+ width="28.148262"
+ height="14.074131"
+ x="389.02563"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-37"
+ width="28.148262"
+ height="14.074131"
+ x="417.17392"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-25"
+ width="28.148262"
+ height="14.074131"
+ x="445.32217"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-4"
+ width="28.148262"
+ height="14.074131"
+ x="473.47043"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-0"
+ width="28.148262"
+ height="14.074131"
+ x="501.61871"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-68"
+ width="28.148262"
+ height="14.074131"
+ x="529.76697"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-43"
+ width="28.148262"
+ height="14.074131"
+ x="557.91522"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-92"
+ width="28.148262"
+ height="14.074131"
+ x="586.06348"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-926"
+ width="28.148262"
+ height="14.074131"
+ x="614.21173"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-49"
+ width="28.148262"
+ height="14.074131"
+ x="642.35999"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-48"
+ width="28.148262"
+ height="14.074131"
+ x="670.50824"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-7"
+ width="28.148262"
+ height="14.074131"
+ x="698.65656"
+ y="499.4122"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-67"
+ width="28.148262"
+ height="14.074131"
+ x="79.394798"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-9-3"
+ width="28.148262"
+ height="14.074131"
+ x="107.54305"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-3-6"
+ width="28.148262"
+ height="14.074131"
+ x="135.6913"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-94-5"
+ width="28.148262"
+ height="14.074131"
+ x="163.83957"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-8-6"
+ width="28.148262"
+ height="14.074131"
+ x="191.98785"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-5-3"
+ width="28.148262"
+ height="14.074131"
+ x="220.13611"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-36-9"
+ width="28.148262"
+ height="14.074131"
+ x="248.28438"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-6-4"
+ width="28.148262"
+ height="14.074131"
+ x="276.43262"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-2-8"
+ width="28.148262"
+ height="14.074131"
+ x="304.58087"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-1-1"
+ width="28.148262"
+ height="14.074131"
+ x="332.72913"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-54-2"
+ width="28.148262"
+ height="14.074131"
+ x="360.87741"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-56-9"
+ width="28.148262"
+ height="14.074131"
+ x="389.02563"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-37-3"
+ width="28.148262"
+ height="14.074131"
+ x="417.17392"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-25-9"
+ width="28.148262"
+ height="14.074131"
+ x="445.32217"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-4-0"
+ width="28.148262"
+ height="14.074131"
+ x="473.47043"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-0-8"
+ width="28.148262"
+ height="14.074131"
+ x="501.61871"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-68-8"
+ width="28.148262"
+ height="14.074131"
+ x="529.76697"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-43-5"
+ width="28.148262"
+ height="14.074131"
+ x="557.91522"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-92-0"
+ width="28.148262"
+ height="14.074131"
+ x="586.06348"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-926-9"
+ width="28.148262"
+ height="14.074131"
+ x="614.21173"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-49-6"
+ width="28.148262"
+ height="14.074131"
+ x="642.36005"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-48-3"
+ width="28.148262"
+ height="14.074131"
+ x="670.50824"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-7-8"
+ width="28.148262"
+ height="14.074131"
+ x="698.65656"
+ y="527.56073"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-61"
+ width="28.148262"
+ height="14.074131"
+ x="79.394798"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-9-1"
+ width="28.148262"
+ height="14.074131"
+ x="107.54305"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-3-5"
+ width="28.148262"
+ height="14.074131"
+ x="135.6913"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-94-9"
+ width="28.148262"
+ height="14.074131"
+ x="163.83955"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-8-8"
+ width="28.148262"
+ height="14.074131"
+ x="191.98784"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-5-4"
+ width="28.148262"
+ height="14.074131"
+ x="220.13609"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-36-8"
+ width="28.148262"
+ height="14.074131"
+ x="248.28436"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-6-1"
+ width="28.148262"
+ height="14.074131"
+ x="276.43262"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-2-0"
+ width="28.148262"
+ height="14.074131"
+ x="304.58087"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-1-3"
+ width="28.148262"
+ height="14.074131"
+ x="332.72916"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-54-0"
+ width="28.148262"
+ height="14.074131"
+ x="360.87744"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-56-4"
+ width="28.148262"
+ height="14.074131"
+ x="389.0257"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-37-4"
+ width="28.148262"
+ height="14.074131"
+ x="417.17395"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-25-4"
+ width="28.148262"
+ height="14.074131"
+ x="445.3222"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-4-4"
+ width="28.148262"
+ height="14.074131"
+ x="473.47046"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-0-7"
+ width="28.148262"
+ height="14.074131"
+ x="501.61874"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#460080;fill-opacity:1;stroke:none"
+ id="rect3590-68-6"
+ width="28.148262"
+ height="14.074131"
+ x="529.76697"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#460080;fill-opacity:1;stroke:none"
+ id="rect3590-43-3"
+ width="28.148262"
+ height="14.074131"
+ x="557.91528"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#460080;fill-opacity:1;stroke:none"
+ id="rect3590-92-1"
+ width="28.148262"
+ height="14.074131"
+ x="586.06354"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-926-7"
+ width="28.148262"
+ height="14.074131"
+ x="614.21173"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-49-5"
+ width="28.148262"
+ height="14.074131"
+ x="642.36005"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-48-9"
+ width="28.148262"
+ height="14.074131"
+ x="670.5083"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-7-6"
+ width="28.148262"
+ height="14.074131"
+ x="698.65662"
+ y="541.63495"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-17"
+ width="28.148262"
+ height="14.074131"
+ x="79.394798"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-9-8"
+ width="28.148262"
+ height="14.074131"
+ x="107.54305"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-3-57"
+ width="28.148262"
+ height="14.074131"
+ x="135.6913"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-94-4"
+ width="28.148262"
+ height="14.074131"
+ x="163.83957"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff6600;fill-opacity:1;stroke:none"
+ id="rect3590-8-1"
+ width="28.148262"
+ height="14.074131"
+ x="191.98785"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff6600;fill-opacity:1;stroke:none"
+ id="rect3590-5-8"
+ width="28.148262"
+ height="14.074131"
+ x="220.13611"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff7f2a;fill-opacity:1;stroke:none"
+ id="rect3590-36-5"
+ width="28.148262"
+ height="14.074131"
+ x="248.28436"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff7f2a;fill-opacity:1;stroke:none"
+ id="rect3590-6-9"
+ width="28.148262"
+ height="14.074131"
+ x="276.43262"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-2-7"
+ width="28.148262"
+ height="14.074131"
+ x="304.5809"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-1-5"
+ width="28.148262"
+ height="14.074131"
+ x="332.72913"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-54-3"
+ width="28.148262"
+ height="14.074131"
+ x="360.87741"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-56-8"
+ width="28.148262"
+ height="14.074131"
+ x="389.02563"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff6600;fill-opacity:1;stroke:none"
+ id="rect3590-37-8"
+ width="28.148262"
+ height="14.074131"
+ x="417.17392"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff6600;fill-opacity:1;stroke:none"
+ id="rect3590-25-3"
+ width="28.148262"
+ height="14.074131"
+ x="445.32217"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff7f2a;fill-opacity:1;stroke:none"
+ id="rect3590-4-1"
+ width="28.148262"
+ height="14.074131"
+ x="473.47043"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff7f2a;fill-opacity:1;stroke:none"
+ id="rect3590-0-89"
+ width="28.148262"
+ height="14.074131"
+ x="501.61871"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-68-64"
+ width="28.148262"
+ height="14.074131"
+ x="529.76697"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-43-33"
+ width="28.148262"
+ height="14.074131"
+ x="557.91522"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-92-3"
+ width="28.148262"
+ height="14.074131"
+ x="586.06348"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-926-8"
+ width="28.148262"
+ height="14.074131"
+ x="614.21173"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff6600;fill-opacity:1;stroke:none"
+ id="rect3590-49-60"
+ width="28.148262"
+ height="14.074131"
+ x="642.35999"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff6600;fill-opacity:1;stroke:none"
+ id="rect3590-48-4"
+ width="28.148262"
+ height="14.074131"
+ x="670.50824"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#ff7f2a;fill-opacity:1;stroke:none"
+ id="rect3590-7-88"
+ width="28.148262"
+ height="14.074131"
+ x="698.65656"
+ y="513.48645"
+ rx="0"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="21.874378"
+ y="510.65295"
+ id="text4268"><tspan
+ sodipodi:role="line"
+ id="tspan4270"
+ x="21.874378"
+ y="510.65295">Channel</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="32.888912"
+ y="524.72711"
+ id="text4272"><tspan
+ sodipodi:role="line"
+ id="tspan4274"
+ x="32.888912"
+ y="524.72711">Rank</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="259.91074"
+ y="571.51569"
+ id="text4276"><tspan
+ sodipodi:role="line"
+ id="tspan4278"
+ x="259.91074"
+ y="571.51569">packet 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="652.99866"
+ y="571.51569"
+ id="text4276-8"><tspan
+ sodipodi:role="line"
+ id="tspan4278-9"
+ x="652.99866"
+ y="571.51569">packet 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="547.13672"
+ y="571.51569"
+ id="text4276-7"><tspan
+ sodipodi:role="line"
+ id="tspan4278-6"
+ x="547.13672"
+ y="571.51569">padding</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="89.185432"
+ y="510.95889"
+ id="text4316"><tspan
+ sodipodi:role="line"
+ x="89.185432"
+ y="510.95889"
+ id="tspan4320">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="117.94563"
+ y="510.96481"
+ id="text4324"><tspan
+ sodipodi:role="line"
+ id="tspan4326"
+ x="117.94563"
+ y="510.96481">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="144.69043"
+ y="510.95889"
+ id="text4316-4-0"><tspan
+ sodipodi:role="line"
+ x="144.69043"
+ y="510.95889"
+ id="tspan4320-3-9">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="539.98993"
+ y="510.95889"
+ id="text4316-4-5"><tspan
+ sodipodi:role="line"
+ x="539.98993"
+ y="510.95889"
+ id="tspan4320-3-4">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="596.89832"
+ y="510.95889"
+ id="text4316-4-59"><tspan
+ sodipodi:role="line"
+ x="596.89832"
+ y="510.95889"
+ id="tspan4320-3-46">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="176.40076"
+ y="510.96481"
+ id="text4324-0-9"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-2"
+ x="176.40076"
+ y="510.96481">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="569.27716"
+ y="510.96481"
+ id="text4324-0-4"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-7"
+ x="569.27716"
+ y="510.96481">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="623.10138"
+ y="510.96481"
+ id="text4324-0-5"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-4"
+ x="623.10138"
+ y="510.96481">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="157.73969"
+ y="524.70508"
+ id="text4324-0-1"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-28"
+ x="157.73969"
+ y="524.70508">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="384.15945"
+ y="524.70508"
+ id="text4324-0-3"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-6"
+ x="384.15945"
+ y="524.70508">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="610.57916"
+ y="524.70508"
+ id="text4324-0-2"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-1"
+ x="610.57916"
+ y="524.70508">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="101.2442"
+ y="524.69916"
+ id="text4316-4-05"><tspan
+ sodipodi:role="line"
+ x="101.2442"
+ y="524.69916"
+ id="tspan4320-3-1">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="327.66391"
+ y="524.69916"
+ id="text4316-4-08"><tspan
+ sodipodi:role="line"
+ x="327.66391"
+ y="524.69916"
+ id="tspan4320-3-5">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="554.08368"
+ y="524.69916"
+ id="text4316-4-6"><tspan
+ sodipodi:role="line"
+ x="554.08368"
+ y="524.69916"
+ id="tspan4320-3-462">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="214.6138"
+ y="524.78491"
+ id="text4328-5"><tspan
+ sodipodi:role="line"
+ id="tspan4330-8"
+ x="214.6138"
+ y="524.78491">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="441.03354"
+ y="524.78491"
+ id="text4328-2"><tspan
+ sodipodi:role="line"
+ id="tspan4330-84"
+ x="441.03354"
+ y="524.78491">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="667.45331"
+ y="524.78491"
+ id="text4328-24"><tspan
+ sodipodi:role="line"
+ id="tspan4330-0"
+ x="667.45331"
+ y="524.78491">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="271.07971"
+ y="524.69916"
+ id="text4332-6"><tspan
+ sodipodi:role="line"
+ id="tspan4334-2"
+ x="271.07971"
+ y="524.69916">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="497.49942"
+ y="524.69916"
+ id="text4332-9"><tspan
+ sodipodi:role="line"
+ id="tspan4334-0"
+ x="497.49942"
+ y="524.69916">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="68.380196"
+ y="464.14713"
+ id="text4654"><tspan
+ sodipodi:role="line"
+ id="tspan4656"
+ x="68.380196"
+ y="464.14713">memory addresses</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.21153724px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 156.49649,467.20671 45.28198,0"
+ id="path4658"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="89.101906"
+ y="597.41931"
+ id="text4654-0"><tspan
+ sodipodi:role="line"
+ id="tspan4656-3"
+ x="89.101906"
+ y="597.41931">pkt1 starts at</tspan><tspan
+ sodipodi:role="line"
+ x="89.101906"
+ y="612.56354"
+ id="tspan5744">channel 0, rank 0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.21153724px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 82.213202,605.82856 0,-45.28198"
+ id="path4658-4"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.21153724px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 617.27129,605.34276 0,-45.28198"
+ id="path4658-4-9"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="620.95221"
+ y="602.66766"
+ id="text4654-0-1"><tspan
+ sodipodi:role="line"
+ id="tspan4656-3-9"
+ x="620.95221"
+ y="602.66766">pkt2 starts at</tspan><tspan
+ sodipodi:role="line"
+ x="620.95221"
+ y="617.81189"
+ id="tspan5746">channel 1, rank 1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.21153724px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 419.80374,471.49015 23.86482,0"
+ id="path4658-3"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="392.08521"
+ y="463.53519"
+ id="text5607"><tspan
+ sodipodi:role="line"
+ id="tspan5609"
+ x="392.08521"
+ y="463.53519">64 bytes wide</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="87.961594"
+ y="493.51923"
+ id="text5611"><tspan
+ sodipodi:role="line"
+ id="tspan5613"
+ x="87.961594"
+ y="493.51923">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="116.77591"
+ y="493.52515"
+ id="text5615"><tspan
+ sodipodi:role="line"
+ id="tspan5617"
+ x="116.77591"
+ y="493.52515">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="145.37135"
+ y="493.60501"
+ id="text5619"><tspan
+ sodipodi:role="line"
+ id="tspan5621"
+ x="145.37135"
+ y="493.60501">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="173.62958"
+ y="493.51923"
+ id="text5623"><tspan
+ sodipodi:role="line"
+ id="tspan5625"
+ x="173.62958"
+ y="493.51923">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="201.8405"
+ y="493.52515"
+ id="text5627"><tspan
+ sodipodi:role="line"
+ id="tspan5629"
+ x="201.8405"
+ y="493.52515">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="230.71991"
+ y="493.43936"
+ id="text5631"><tspan
+ sodipodi:role="line"
+ id="tspan5633"
+ x="230.71991"
+ y="493.43936">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="258.9249"
+ y="493.51923"
+ id="text5635"><tspan
+ sodipodi:role="line"
+ id="tspan5637"
+ x="258.9249"
+ y="493.51923">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="287.69778"
+ y="493.52515"
+ id="text5639"><tspan
+ sodipodi:role="line"
+ id="tspan5641"
+ x="287.69778"
+ y="493.52515">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="315.99152"
+ y="493.51923"
+ id="text5643"><tspan
+ sodipodi:role="line"
+ id="tspan5645"
+ x="315.99152"
+ y="493.51923">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="344.51596"
+ y="493.51923"
+ id="text5647"><tspan
+ sodipodi:role="line"
+ id="tspan5649"
+ x="344.51596"
+ y="493.51923">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="371.68573"
+ y="493.52515"
+ id="text5651"><tspan
+ sodipodi:role="line"
+ id="tspan5653"
+ x="371.68573"
+ y="493.52515">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="400.92007"
+ y="493.52515"
+ id="text5655"><tspan
+ sodipodi:role="line"
+ id="tspan5657"
+ x="400.92007"
+ y="493.52515">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="429.07181"
+ y="493.51923"
+ id="text5659"><tspan
+ sodipodi:role="line"
+ id="tspan5661"
+ x="429.07181"
+ y="493.51923">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="456.76215"
+ y="493.52515"
+ id="text5663"><tspan
+ sodipodi:role="line"
+ id="tspan5665"
+ x="456.76215"
+ y="493.52515">D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="486.99628"
+ y="493.52515"
+ id="text5667"><tspan
+ sodipodi:role="line"
+ id="tspan5669"
+ x="486.99628"
+ y="493.52515">E</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="516.11224"
+ y="493.52515"
+ id="text5671"><tspan
+ sodipodi:role="line"
+ id="tspan5673"
+ x="516.11224"
+ y="493.52515">F</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="536.26007"
+ y="493.51923"
+ id="text5675"><tspan
+ sodipodi:role="line"
+ id="tspan5677"
+ x="536.26007"
+ y="493.51923">10</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="565.0744"
+ y="493.52515"
+ id="text5679"><tspan
+ sodipodi:role="line"
+ id="tspan5681"
+ x="565.0744"
+ y="493.52515">11</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="593.6698"
+ y="493.60501"
+ id="text5683"><tspan
+ sodipodi:role="line"
+ id="tspan5685"
+ x="593.6698"
+ y="493.60501">12</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="621.9281"
+ y="493.51923"
+ id="text5687"><tspan
+ sodipodi:role="line"
+ id="tspan5689"
+ x="621.9281"
+ y="493.51923">13</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="650.13898"
+ y="493.52515"
+ id="text5691"><tspan
+ sodipodi:role="line"
+ id="tspan5693"
+ x="650.13898"
+ y="493.52515">14</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="679.01837"
+ y="493.43936"
+ id="text5695"><tspan
+ sodipodi:role="line"
+ id="tspan5697"
+ x="679.01837"
+ y="493.43936">15</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="707.22339"
+ y="493.51923"
+ id="text5699"><tspan
+ sodipodi:role="line"
+ id="tspan5701"
+ x="707.22339"
+ y="493.51923">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="8.2204075"
+ y="492.55319"
+ id="text4268-3"><tspan
+ sodipodi:role="line"
+ id="tspan4270-8"
+ x="8.2204075"
+ y="492.55319">Block num</tspan></text>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot5728"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
+ id="flowRegion5730"><rect
+ id="rect5732"
+ width="110.6117"
+ height="25.253813"
+ x="314.66251"
+ y="435.66406" /></flowRegion><flowPara
+ id="flowPara5734" /></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot5736"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
+ id="flowRegion5738"><rect
+ id="rect5740"
+ width="32.829956"
+ height="11.616755"
+ x="356.58386"
+ y="428.08792" /></flowRegion><flowPara
+ id="flowPara5742" /></flowRoot> <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="88.197639"
+ y="553.00208"
+ id="text5611-0"><tspan
+ sodipodi:role="line"
+ id="tspan5613-5"
+ x="88.197639"
+ y="553.00208">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="117.01196"
+ y="553.008"
+ id="text5615-6"><tspan
+ sodipodi:role="line"
+ id="tspan5617-6"
+ x="117.01196"
+ y="553.008">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="145.60741"
+ y="553.08783"
+ id="text5619-4"><tspan
+ sodipodi:role="line"
+ id="tspan5621-0"
+ x="145.60741"
+ y="553.08783">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="173.86563"
+ y="553.00208"
+ id="text5623-0"><tspan
+ sodipodi:role="line"
+ id="tspan5625-4"
+ x="173.86563"
+ y="553.00208">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="202.07655"
+ y="553.008"
+ id="text5627-6"><tspan
+ sodipodi:role="line"
+ id="tspan5629-2"
+ x="202.07655"
+ y="553.008">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="230.95596"
+ y="552.92218"
+ id="text5631-6"><tspan
+ sodipodi:role="line"
+ id="tspan5633-7"
+ x="230.95596"
+ y="552.92218">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="259.16092"
+ y="553.00208"
+ id="text5635-5"><tspan
+ sodipodi:role="line"
+ id="tspan5637-6"
+ x="259.16092"
+ y="553.00208">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="287.93384"
+ y="553.008"
+ id="text5639-9"><tspan
+ sodipodi:role="line"
+ id="tspan5641-8"
+ x="287.93384"
+ y="553.008">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="316.22757"
+ y="553.00208"
+ id="text5643-7"><tspan
+ sodipodi:role="line"
+ id="tspan5645-2"
+ x="316.22757"
+ y="553.00208">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="344.75201"
+ y="553.00208"
+ id="text5647-8"><tspan
+ sodipodi:role="line"
+ id="tspan5649-2"
+ x="344.75201"
+ y="553.00208">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="371.92178"
+ y="553.008"
+ id="text5651-9"><tspan
+ sodipodi:role="line"
+ id="tspan5653-9"
+ x="371.92178"
+ y="553.008">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="401.1561"
+ y="553.008"
+ id="text5655-6"><tspan
+ sodipodi:role="line"
+ id="tspan5657-0"
+ x="401.1561"
+ y="553.008">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="429.30786"
+ y="553.00208"
+ id="text5659-2"><tspan
+ sodipodi:role="line"
+ id="tspan5661-7"
+ x="429.30786"
+ y="553.00208">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="456.99817"
+ y="553.008"
+ id="text5663-6"><tspan
+ sodipodi:role="line"
+ id="tspan5665-1"
+ x="456.99817"
+ y="553.008">D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="487.2323"
+ y="553.008"
+ id="text5667-3"><tspan
+ sodipodi:role="line"
+ id="tspan5669-2"
+ x="487.2323"
+ y="553.008">E</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="516.34833"
+ y="553.008"
+ id="text5671-1"><tspan
+ sodipodi:role="line"
+ id="tspan5673-5"
+ x="516.34833"
+ y="553.008">F</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="625.12976"
+ y="553.00208"
+ id="text5611-0-4"><tspan
+ sodipodi:role="line"
+ id="tspan5613-5-8"
+ x="625.12976"
+ y="553.00208">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="653.94403"
+ y="553.008"
+ id="text5615-6-0"><tspan
+ sodipodi:role="line"
+ id="tspan5617-6-4"
+ x="653.94403"
+ y="553.008">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="682.53949"
+ y="553.08783"
+ id="text5619-4-2"><tspan
+ sodipodi:role="line"
+ id="tspan5621-0-9"
+ x="682.53949"
+ y="553.08783">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.11537266px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="710.79773"
+ y="553.00208"
+ id="text5623-0-6"><tspan
+ sodipodi:role="line"
+ id="tspan5625-4-1"
+ x="710.79773"
+ y="553.00208">3</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/memory-management2.svg b/doc/guides/prog_guide/img/memory-management2.svg
new file mode 100644
index 0000000..b0cce18
--- /dev/null
+++ b/doc/guides/prog_guide/img/memory-management2.svg
@@ -0,0 +1,2301 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="721.63605"
+ height="182.36613"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="memory-management2.svg"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/memory-management2.png"
+ inkscape:export-xdpi="113.16409"
+ inkscape:export-ydpi="113.16409">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mstart"
+ style="overflow:visible">
+ <path
+ id="path4669"
+ 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="path4672"
+ 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="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path4666"
+ 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
+ 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="perspective10" />
+ <inkscape:perspective
+ id="perspective3600"
+ 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="perspective3622"
+ 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="perspective3622-1"
+ 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="perspective3622-7"
+ 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="perspective3622-4"
+ 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="perspective3622-0"
+ 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="perspective3622-10"
+ 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="perspective3622-3"
+ 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="perspective3622-06"
+ 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="perspective3622-5"
+ 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="perspective3622-76"
+ 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="perspective3622-9"
+ 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="perspective3622-45"
+ 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="perspective3622-47"
+ 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="perspective3622-43"
+ 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="perspective3622-78"
+ 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="perspective3622-8"
+ 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="perspective3622-14"
+ 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="perspective3622-068"
+ 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="perspective3622-6"
+ 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="perspective3622-50"
+ 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="perspective3622-71"
+ 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="perspective3824"
+ 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="perspective3824-5"
+ 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="perspective4093"
+ 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="perspective4288"
+ 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="perspective4288-7"
+ 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="perspective4344"
+ 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="perspective4369"
+ 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="perspective4394"
+ 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="perspective4394-2"
+ 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="perspective4394-0"
+ 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="perspective4441"
+ 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="perspective4441-2"
+ 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="perspective4441-7"
+ 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="perspective4441-8"
+ 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="perspective4441-9"
+ 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="perspective4441-80"
+ 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="perspective4521"
+ 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="perspective4521-1"
+ 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="perspective4521-0"
+ 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="perspective4568"
+ 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="perspective4568-6"
+ 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="perspective4568-7"
+ 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="perspective4615"
+ 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="perspective4615-9"
+ 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="perspective4615-8"
+ 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="perspective5304"
+ 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-1"
+ style="overflow:visible">
+ <path
+ id="path4672-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>
+ <inkscape:perspective
+ id="perspective5338"
+ 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-0"
+ style="overflow:visible">
+ <path
+ id="path4672-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="perspective5366"
+ 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="perspective5391"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path4672-9"
+ 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="perspective5711"
+ 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="perspective5800"
+ 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="perspective5970"
+ 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="perspective7639"
+ 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="perspective8210"
+ 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="perspective8571"
+ 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="perspective8596"
+ 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="perspective8596-6"
+ 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="perspective8596-7"
+ 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="perspective8643"
+ 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="perspective8643-4"
+ 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="perspective8643-43"
+ 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" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="413.62889"
+ inkscape:cy="368.76449"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="958"
+ inkscape:window-height="1059"
+ inkscape:window-x="627"
+ inkscape:window-y="26"
+ inkscape:window-maximized="0"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-9.3094645,-454.23035)">
+ <rect
+ style="fill:#aeda00;fill-opacity:1;stroke:none"
+ id="rect3590"
+ width="28.306801"
+ height="14.1534"
+ x="79.788979"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-9"
+ width="28.306801"
+ height="14.1534"
+ x="108.09577"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-3"
+ width="28.306801"
+ height="14.1534"
+ x="136.40256"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aeda00;fill-opacity:1;stroke:none"
+ id="rect3590-94"
+ width="28.306801"
+ height="14.1534"
+ x="164.70938"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-8"
+ width="28.306801"
+ height="14.1534"
+ x="193.01619"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-5"
+ width="28.306801"
+ height="14.1534"
+ x="221.323"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aeda00;fill-opacity:1;stroke:none"
+ id="rect3590-36"
+ width="28.306801"
+ height="14.1534"
+ x="249.62979"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-6"
+ width="28.306801"
+ height="14.1534"
+ x="277.93658"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-2"
+ width="28.306801"
+ height="14.1534"
+ x="306.24341"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aeda00;fill-opacity:1;stroke:none"
+ id="rect3590-1"
+ width="28.306801"
+ height="14.1534"
+ x="334.55017"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-54"
+ width="28.306801"
+ height="14.1534"
+ x="362.85699"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-56"
+ width="28.306801"
+ height="14.1534"
+ x="391.16379"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aeda00;fill-opacity:1;stroke:none"
+ id="rect3590-37"
+ width="28.306801"
+ height="14.1534"
+ x="419.47058"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-25"
+ width="28.306801"
+ height="14.1534"
+ x="447.77737"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-4"
+ width="28.306801"
+ height="14.1534"
+ x="476.0842"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aeda00;fill-opacity:1;stroke:none"
+ id="rect3590-0"
+ width="28.306801"
+ height="14.1534"
+ x="504.39099"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-68"
+ width="28.306801"
+ height="14.1534"
+ x="532.69775"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-43"
+ width="28.306801"
+ height="14.1534"
+ x="561.00458"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aeda00;fill-opacity:1;stroke:none"
+ id="rect3590-92"
+ width="28.306801"
+ height="14.1534"
+ x="589.3114"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-926"
+ width="28.306801"
+ height="14.1534"
+ x="617.61816"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#668000;fill-opacity:1;stroke:none"
+ id="rect3590-49"
+ width="28.306801"
+ height="14.1534"
+ x="645.92499"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aeda00;fill-opacity:1;stroke:none"
+ id="rect3590-48"
+ width="28.306801"
+ height="14.1534"
+ x="674.23175"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#88aa00;fill-opacity:1;stroke:none"
+ id="rect3590-7"
+ width="28.306801"
+ height="14.1534"
+ x="702.53857"
+ y="499.66611"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-67"
+ width="28.306801"
+ height="14.1534"
+ x="79.788979"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-9-3"
+ width="28.306801"
+ height="14.1534"
+ x="108.09577"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-3-6"
+ width="28.306801"
+ height="14.1534"
+ x="136.40256"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-94-5"
+ width="28.306801"
+ height="14.1534"
+ x="164.70938"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-8-6"
+ width="28.306801"
+ height="14.1534"
+ x="193.01619"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-5-3"
+ width="28.306801"
+ height="14.1534"
+ x="221.323"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-36-9"
+ width="28.306801"
+ height="14.1534"
+ x="249.62981"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-6-4"
+ width="28.306801"
+ height="14.1534"
+ x="277.93658"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-2-8"
+ width="28.306801"
+ height="14.1534"
+ x="306.24338"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-1-1"
+ width="28.306801"
+ height="14.1534"
+ x="334.55017"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-54-2"
+ width="28.306801"
+ height="14.1534"
+ x="362.85699"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-56-9"
+ width="28.306801"
+ height="14.1534"
+ x="391.16379"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-37-3"
+ width="28.306801"
+ height="14.1534"
+ x="419.47058"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-25-9"
+ width="28.306801"
+ height="14.1534"
+ x="447.77737"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-4-0"
+ width="28.306801"
+ height="14.1534"
+ x="476.0842"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-0-8"
+ width="28.306801"
+ height="14.1534"
+ x="504.39099"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-68-8"
+ width="28.306801"
+ height="14.1534"
+ x="532.69775"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-43-5"
+ width="28.306801"
+ height="14.1534"
+ x="561.00458"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-92-0"
+ width="28.306801"
+ height="14.1534"
+ x="589.3114"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#c8b7b7;fill-opacity:1;stroke:none"
+ id="rect3590-926-9"
+ width="28.306801"
+ height="14.1534"
+ x="617.61816"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-49-6"
+ width="28.306801"
+ height="14.1534"
+ x="645.92505"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-48-3"
+ width="28.306801"
+ height="14.1534"
+ x="674.23175"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#808080;fill-opacity:1;stroke:none"
+ id="rect3590-7-8"
+ width="28.306801"
+ height="14.1534"
+ x="702.53857"
+ y="527.97321"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-61"
+ width="28.306801"
+ height="14.1534"
+ x="79.788979"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-9-1"
+ width="28.306801"
+ height="14.1534"
+ x="108.09577"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-3-5"
+ width="28.306801"
+ height="14.1534"
+ x="136.40256"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-94-9"
+ width="28.306801"
+ height="14.1534"
+ x="164.70937"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-8-8"
+ width="28.306801"
+ height="14.1534"
+ x="193.01617"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-5-4"
+ width="28.306801"
+ height="14.1534"
+ x="221.32297"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-36-8"
+ width="28.306801"
+ height="14.1534"
+ x="249.62979"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-6-1"
+ width="28.306801"
+ height="14.1534"
+ x="277.93655"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-2-0"
+ width="28.306801"
+ height="14.1534"
+ x="306.24338"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-1-3"
+ width="28.306801"
+ height="14.1534"
+ x="334.5502"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-54-0"
+ width="28.306801"
+ height="14.1534"
+ x="362.85703"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-56-4"
+ width="28.306801"
+ height="14.1534"
+ x="391.16382"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-37-4"
+ width="28.306801"
+ height="14.1534"
+ x="419.47061"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-25-4"
+ width="28.306801"
+ height="14.1534"
+ x="447.7774"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-4-4"
+ width="28.306801"
+ height="14.1534"
+ x="476.08423"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-0-7"
+ width="28.306801"
+ height="14.1534"
+ x="504.39102"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-68-6"
+ width="28.306801"
+ height="14.1534"
+ x="532.69781"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-43-3"
+ width="28.306801"
+ height="14.1534"
+ x="561.00464"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-92-1"
+ width="28.306801"
+ height="14.1534"
+ x="589.31146"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-926-7"
+ width="28.306801"
+ height="14.1534"
+ x="617.61816"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-49-5"
+ width="28.306801"
+ height="14.1534"
+ x="645.92505"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-48-9"
+ width="28.306801"
+ height="14.1534"
+ x="674.23187"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#008fff;fill-opacity:1;stroke:none"
+ id="rect3590-7-6"
+ width="28.306801"
+ height="14.1534"
+ x="702.5387"
+ y="542.12665"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-17"
+ width="28.306801"
+ height="14.1534"
+ x="79.788979"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-9-8"
+ width="28.306801"
+ height="14.1534"
+ x="108.09577"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-3-57"
+ width="28.306801"
+ height="14.1534"
+ x="136.40256"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-94-4"
+ width="28.306801"
+ height="14.1534"
+ x="164.70938"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-8-1"
+ width="28.306801"
+ height="14.1534"
+ x="193.01619"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-5-8"
+ width="28.306801"
+ height="14.1534"
+ x="221.323"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-36-5"
+ width="28.306801"
+ height="14.1534"
+ x="249.62979"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-6-9"
+ width="28.306801"
+ height="14.1534"
+ x="277.93658"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-2-7"
+ width="28.306801"
+ height="14.1534"
+ x="306.24341"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-1-5"
+ width="28.306801"
+ height="14.1534"
+ x="334.55017"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-54-3"
+ width="28.306801"
+ height="14.1534"
+ x="362.85699"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-56-8"
+ width="28.306801"
+ height="14.1534"
+ x="391.16379"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-37-8"
+ width="28.306801"
+ height="14.1534"
+ x="419.47058"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-25-3"
+ width="28.306801"
+ height="14.1534"
+ x="447.77737"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-4-1"
+ width="28.306801"
+ height="14.1534"
+ x="476.0842"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-0-89"
+ width="28.306801"
+ height="14.1534"
+ x="504.39099"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-68-64"
+ width="28.306801"
+ height="14.1534"
+ x="532.69775"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-43-33"
+ width="28.306801"
+ height="14.1534"
+ x="561.00458"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-92-3"
+ width="28.306801"
+ height="14.1534"
+ x="589.3114"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-926-8"
+ width="28.306801"
+ height="14.1534"
+ x="617.61816"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-49-60"
+ width="28.306801"
+ height="14.1534"
+ x="645.92499"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#aa4400;fill-opacity:1;stroke:none"
+ id="rect3590-48-4"
+ width="28.306801"
+ height="14.1534"
+ x="674.23175"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <rect
+ style="fill:#d45500;fill-opacity:1;stroke:none"
+ id="rect3590-7-88"
+ width="28.306801"
+ height="14.1534"
+ x="702.53857"
+ y="513.81964"
+ rx="0"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="21.944584"
+ y="510.97018"
+ id="text4268"><tspan
+ sodipodi:role="line"
+ id="tspan4270"
+ x="21.944584"
+ y="510.97018">Channel</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="33.021156"
+ y="525.1236"
+ id="text4272"><tspan
+ sodipodi:role="line"
+ id="tspan4274"
+ x="33.021156"
+ y="525.1236">Rank</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="261.32166"
+ y="572.17572"
+ id="text4276"><tspan
+ sodipodi:role="line"
+ id="tspan4278"
+ x="261.32166"
+ y="572.17572">packet 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="579.70288"
+ y="572.17572"
+ id="text4276-8"><tspan
+ sodipodi:role="line"
+ id="tspan4278-9"
+ x="579.70288"
+ y="572.17572">packet 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="89.634758"
+ y="511.27783"
+ id="text4316"><tspan
+ sodipodi:role="line"
+ x="89.634758"
+ y="511.27783"
+ id="tspan4320">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="118.55694"
+ y="511.28378"
+ id="text4324"><tspan
+ sodipodi:role="line"
+ id="tspan4326"
+ x="118.55694"
+ y="511.28378">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="175.04115"
+ y="511.27783"
+ id="text4316-4-0"><tspan
+ sodipodi:role="line"
+ x="175.04115"
+ y="511.27783"
+ id="tspan4320-3-9">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="206.93008"
+ y="511.28378"
+ id="text4324-0-9"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-2"
+ x="206.93008"
+ y="511.28378">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="626.55792"
+ y="511.28378"
+ id="text4324-0-5"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-4"
+ x="626.55792"
+ y="511.28378">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="158.57513"
+ y="525.10144"
+ id="text4324-0-1"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-28"
+ x="158.57513"
+ y="525.10144">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="386.27017"
+ y="525.10144"
+ id="text4324-0-3"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-6"
+ x="386.27017"
+ y="525.10144">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="613.96515"
+ y="525.10144"
+ id="text4324-0-2"><tspan
+ sodipodi:role="line"
+ id="tspan4326-3-1"
+ x="613.96515"
+ y="525.10144">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="101.76144"
+ y="525.09552"
+ id="text4316-4-05"><tspan
+ sodipodi:role="line"
+ x="101.76144"
+ y="525.09552"
+ id="tspan4320-3-1">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="329.45642"
+ y="525.09552"
+ id="text4316-4-08"><tspan
+ sodipodi:role="line"
+ x="329.45642"
+ y="525.09552"
+ id="tspan4320-3-5">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="557.15149"
+ y="525.09552"
+ id="text4316-4-6"><tspan
+ sodipodi:role="line"
+ x="557.15149"
+ y="525.09552"
+ id="tspan4320-3-462">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="215.76958"
+ y="525.18176"
+ id="text4328-5"><tspan
+ sodipodi:role="line"
+ id="tspan4330-8"
+ x="215.76958"
+ y="525.18176">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="443.46457"
+ y="525.18176"
+ id="text4328-2"><tspan
+ sodipodi:role="line"
+ id="tspan4330-84"
+ x="443.46457"
+ y="525.18176">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="671.15961"
+ y="525.18176"
+ id="text4328-24"><tspan
+ sodipodi:role="line"
+ id="tspan4330-0"
+ x="671.15961"
+ y="525.18176">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="272.55353"
+ y="525.09552"
+ id="text4332-6"><tspan
+ sodipodi:role="line"
+ id="tspan4334-2"
+ x="272.55353"
+ y="525.09552">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="500.2485"
+ y="525.09552"
+ id="text4332-9"><tspan
+ sodipodi:role="line"
+ id="tspan4334-0"
+ x="500.2485"
+ y="525.09552">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="68.712341"
+ y="464.20242"
+ id="text4654"><tspan
+ sodipodi:role="line"
+ id="tspan4656"
+ x="68.712341"
+ y="464.20242">memory addresses</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.21836102px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 157.32493,467.27924 45.53702,0"
+ id="path4658"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="89.550758"
+ y="598.22528"
+ id="text4654-0"><tspan
+ sodipodi:role="line"
+ id="tspan4656-3"
+ x="89.550758"
+ y="598.22528">pkt0 starts at</tspan><tspan
+ sodipodi:role="line"
+ x="89.550758"
+ y="613.45477"
+ id="tspan5744">channel 0, rank 1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.21836102px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 82.623257,606.68185 0,-45.53702"
+ id="path4658-4"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.21836102px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 543.77432,606.19331 0,-45.53702"
+ id="path4658-4-9"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="547.47595"
+ y="603.50317"
+ id="text4654-0-1"><tspan
+ sodipodi:role="line"
+ id="tspan4656-3-9"
+ x="547.47595"
+ y="603.50317">pkt2 starts at</tspan><tspan
+ sodipodi:role="line"
+ x="547.47595"
+ y="618.73267"
+ id="tspan5746">channel 1, rank 0</tspan><tspan
+ sodipodi:role="line"
+ x="547.47595"
+ y="633.96222"
+ id="tspan8239">(no padding needed)</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.21836102px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 422.11522,471.5868 23.99924,0"
+ id="path4658-3"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="394.24057"
+ y="463.58704"
+ id="text5607"><tspan
+ sodipodi:role="line"
+ id="tspan5609"
+ x="394.24057"
+ y="463.58704">64 bytes wide</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="88.404022"
+ y="493.73996"
+ id="text5611"><tspan
+ sodipodi:role="line"
+ id="tspan5613"
+ x="88.404022"
+ y="493.73996">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="117.38064"
+ y="493.74591"
+ id="text5615"><tspan
+ sodipodi:role="line"
+ id="tspan5617"
+ x="117.38064"
+ y="493.74591">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="146.13713"
+ y="493.8262"
+ id="text5619"><tspan
+ sodipodi:role="line"
+ id="tspan5621"
+ x="146.13713"
+ y="493.8262">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="174.55452"
+ y="493.73996"
+ id="text5623"><tspan
+ sodipodi:role="line"
+ id="tspan5625"
+ x="174.55452"
+ y="493.73996">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="202.92433"
+ y="493.74591"
+ id="text5627"><tspan
+ sodipodi:role="line"
+ id="tspan5629"
+ x="202.92433"
+ y="493.74591">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="231.9664"
+ y="493.65964"
+ id="text5631"><tspan
+ sodipodi:role="line"
+ id="tspan5633"
+ x="231.9664"
+ y="493.65964">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="260.33026"
+ y="493.73996"
+ id="text5635"><tspan
+ sodipodi:role="line"
+ id="tspan5637"
+ x="260.33026"
+ y="493.73996">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="289.2652"
+ y="493.74591"
+ id="text5639"><tspan
+ sodipodi:role="line"
+ id="tspan5641"
+ x="289.2652"
+ y="493.74591">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="317.71829"
+ y="493.73996"
+ id="text5643"><tspan
+ sodipodi:role="line"
+ id="tspan5645"
+ x="317.71829"
+ y="493.73996">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="346.40338"
+ y="493.73996"
+ id="text5647"><tspan
+ sodipodi:role="line"
+ id="tspan5649"
+ x="346.40338"
+ y="493.73996">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="373.7262"
+ y="493.74591"
+ id="text5651"><tspan
+ sodipodi:role="line"
+ id="tspan5653"
+ x="373.7262"
+ y="493.74591">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="403.12518"
+ y="493.74591"
+ id="text5655"><tspan
+ sodipodi:role="line"
+ id="tspan5657"
+ x="403.12518"
+ y="493.74591">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="431.43549"
+ y="493.73996"
+ id="text5659"><tspan
+ sodipodi:role="line"
+ id="tspan5661"
+ x="431.43549"
+ y="493.73996">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="459.2818"
+ y="493.74591"
+ id="text5663"><tspan
+ sodipodi:role="line"
+ id="tspan5665"
+ x="459.2818"
+ y="493.74591">D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="489.68619"
+ y="493.74591"
+ id="text5667"><tspan
+ sodipodi:role="line"
+ id="tspan5669"
+ x="489.68619"
+ y="493.74591">E</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="518.96619"
+ y="493.74591"
+ id="text5671"><tspan
+ sodipodi:role="line"
+ id="tspan5673"
+ x="518.96619"
+ y="493.74591">F</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="539.22748"
+ y="493.73996"
+ id="text5675"><tspan
+ sodipodi:role="line"
+ id="tspan5677"
+ x="539.22748"
+ y="493.73996">10</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="568.20404"
+ y="493.74591"
+ id="text5679"><tspan
+ sodipodi:role="line"
+ id="tspan5681"
+ x="568.20404"
+ y="493.74591">11</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="596.96057"
+ y="493.8262"
+ id="text5683"><tspan
+ sodipodi:role="line"
+ id="tspan5685"
+ x="596.96057"
+ y="493.8262">12</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="625.37799"
+ y="493.73996"
+ id="text5687"><tspan
+ sodipodi:role="line"
+ id="tspan5689"
+ x="625.37799"
+ y="493.73996">13</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="653.7478"
+ y="493.74591"
+ id="text5691"><tspan
+ sodipodi:role="line"
+ id="tspan5693"
+ x="653.7478"
+ y="493.74591">14</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="682.78986"
+ y="493.65964"
+ id="text5695"><tspan
+ sodipodi:role="line"
+ id="tspan5697"
+ x="682.78986"
+ y="493.65964">15</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="711.15369"
+ y="493.73996"
+ id="text5699"><tspan
+ sodipodi:role="line"
+ id="tspan5701"
+ x="711.15369"
+ y="493.73996">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="8.2137098"
+ y="492.76846"
+ id="text4268-3"><tspan
+ sodipodi:role="line"
+ id="tspan4270-8"
+ x="8.2137098"
+ y="492.76846">Block num</tspan></text>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot5728"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
+ id="flowRegion5730"><rect
+ id="rect5732"
+ width="110.6117"
+ height="25.253813"
+ x="314.66251"
+ y="435.66406" /></flowRegion><flowPara
+ id="flowPara5734" /></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot5736"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
+ id="flowRegion5738"><rect
+ id="rect5740"
+ width="32.829956"
+ height="11.616755"
+ x="356.58386"
+ y="428.08792" /></flowRegion><flowPara
+ id="flowPara5742" /></flowRoot> <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="88.641403"
+ y="553.5578"
+ id="text5611-0"><tspan
+ sodipodi:role="line"
+ id="tspan5613-5"
+ x="88.641403"
+ y="553.5578">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="117.61801"
+ y="553.56378"
+ id="text5615-6"><tspan
+ sodipodi:role="line"
+ id="tspan5617-6"
+ x="117.61801"
+ y="553.56378">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="146.37451"
+ y="553.64404"
+ id="text5619-4"><tspan
+ sodipodi:role="line"
+ id="tspan5621-0"
+ x="146.37451"
+ y="553.64404">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="174.7919"
+ y="553.5578"
+ id="text5623-0"><tspan
+ sodipodi:role="line"
+ id="tspan5625-4"
+ x="174.7919"
+ y="553.5578">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="203.16173"
+ y="553.56378"
+ id="text5627-6"><tspan
+ sodipodi:role="line"
+ id="tspan5629-2"
+ x="203.16173"
+ y="553.56378">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="232.20378"
+ y="553.47748"
+ id="text5631-6"><tspan
+ sodipodi:role="line"
+ id="tspan5633-7"
+ x="232.20378"
+ y="553.47748">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="260.56763"
+ y="553.5578"
+ id="text5635-5"><tspan
+ sodipodi:role="line"
+ id="tspan5637-6"
+ x="260.56763"
+ y="553.5578">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="289.50256"
+ y="553.56378"
+ id="text5639-9"><tspan
+ sodipodi:role="line"
+ id="tspan5641-8"
+ x="289.50256"
+ y="553.56378">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="317.95566"
+ y="553.5578"
+ id="text5643-7"><tspan
+ sodipodi:role="line"
+ id="tspan5645-2"
+ x="317.95566"
+ y="553.5578">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="346.64075"
+ y="553.5578"
+ id="text5647-8"><tspan
+ sodipodi:role="line"
+ id="tspan5649-2"
+ x="346.64075"
+ y="553.5578">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="373.96356"
+ y="553.56378"
+ id="text5651-9"><tspan
+ sodipodi:role="line"
+ id="tspan5653-9"
+ x="373.96356"
+ y="553.56378">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="403.36255"
+ y="553.56378"
+ id="text5655-6"><tspan
+ sodipodi:role="line"
+ id="tspan5657-0"
+ x="403.36255"
+ y="553.56378">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="431.67285"
+ y="553.5578"
+ id="text5659-2"><tspan
+ sodipodi:role="line"
+ id="tspan5661-7"
+ x="431.67285"
+ y="553.5578">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="459.51917"
+ y="553.56378"
+ id="text5663-6"><tspan
+ sodipodi:role="line"
+ id="tspan5665-1"
+ x="459.51917"
+ y="553.56378">D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="489.92355"
+ y="553.56378"
+ id="text5667-3"><tspan
+ sodipodi:role="line"
+ id="tspan5669-2"
+ x="489.92355"
+ y="553.56378">E</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="519.20355"
+ y="553.56378"
+ id="text5671-1"><tspan
+ sodipodi:role="line"
+ id="tspan5673-5"
+ x="519.20355"
+ y="553.56378">F</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="541.68066"
+ y="553.5578"
+ id="text5611-0-4"><tspan
+ sodipodi:role="line"
+ id="tspan5613-5-8"
+ x="541.68066"
+ y="553.5578">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="570.65729"
+ y="553.56378"
+ id="text5615-6-0"><tspan
+ sodipodi:role="line"
+ id="tspan5617-6-4"
+ x="570.65729"
+ y="553.56378">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="599.41376"
+ y="553.64404"
+ id="text5619-4-2"><tspan
+ sodipodi:role="line"
+ id="tspan5621-0-9"
+ x="599.41376"
+ y="553.64404">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="627.83112"
+ y="553.5578"
+ id="text5623-0-6"><tspan
+ sodipodi:role="line"
+ id="tspan5625-4-1"
+ x="627.83112"
+ y="553.5578">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="146.52826"
+ y="511.4975"
+ id="text4328-5-0"><tspan
+ sodipodi:role="line"
+ id="tspan4330-8-6"
+ x="146.52826"
+ y="511.4975">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="543.39069"
+ y="510.77237"
+ id="text4324-3"><tspan
+ sodipodi:role="line"
+ id="tspan4326-2"
+ x="543.39069"
+ y="510.77237">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="599.87488"
+ y="510.76642"
+ id="text4316-4-0-0"><tspan
+ sodipodi:role="line"
+ x="599.87488"
+ y="510.76642"
+ id="tspan4320-3-9-6">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="571.362"
+ y="510.98608"
+ id="text4328-5-0-1"><tspan
+ sodipodi:role="line"
+ id="tspan4330-8-6-5"
+ x="571.362"
+ y="510.98608">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="33.475063"
+ y="540.45441"
+ id="text4272-5"><tspan
+ sodipodi:role="line"
+ id="tspan4274-4"
+ x="33.475063"
+ y="540.45441">DIMM</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="133.7489"
+ y="538.91449"
+ id="text4328-5-7"><tspan
+ sodipodi:role="line"
+ id="tspan4330-8-65"
+ x="133.7489"
+ y="538.91449">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="359.58084"
+ y="538.91449"
+ id="text4328-5-9"><tspan
+ sodipodi:role="line"
+ id="tspan4330-8-3"
+ x="359.58084"
+ y="538.91449">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="585.41272"
+ y="538.91449"
+ id="text4328-5-4"><tspan
+ sodipodi:role="line"
+ id="tspan4330-8-5"
+ x="585.41272"
+ y="538.91449">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="471.73404"
+ y="538.92047"
+ id="text4332-9-2"><tspan
+ sodipodi:role="line"
+ id="tspan4334-0-5"
+ x="471.73404"
+ y="538.92047">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="245.467"
+ y="538.92047"
+ id="text4332-9-7"><tspan
+ sodipodi:role="line"
+ id="tspan4334-0-4"
+ x="245.467"
+ y="538.92047">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.18360996px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="699.74158"
+ y="538.92047"
+ id="text4332-9-0"><tspan
+ sodipodi:role="line"
+ id="tspan4334-0-7"
+ x="699.74158"
+ y="538.92047">1</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/mempool.svg b/doc/guides/prog_guide/img/mempool.svg
new file mode 100644
index 0000000..5185bd0
--- /dev/null
+++ b/doc/guides/prog_guide/img/mempool.svg
@@ -0,0 +1,2434 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="524.67041"
+ height="224.77138"
+ id="svg3868"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="mempool.svg"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/mbuf2.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200"
+ sodipodi:version="0.32"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs3870">
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleInL"
+ style="overflow:visible">
+ <path
+ id="path5477"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(-0.8,-0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <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="perspective4304"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path3211-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.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-6"
+ style="overflow:visible">
+ <path
+ id="path3208-9"
+ 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="marker4312"
+ style="overflow:visible">
+ <path
+ id="path4314"
+ 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="marker4316"
+ style="overflow:visible">
+ <path
+ id="path4318"
+ 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="marker4320"
+ style="overflow:visible">
+ <path
+ id="path4322"
+ 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="perspective4304-6"
+ 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-8"
+ style="overflow:visible">
+ <path
+ id="path3211-8"
+ 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-4"
+ style="overflow:visible">
+ <path
+ id="path3208-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.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker4312-1"
+ style="overflow:visible">
+ <path
+ id="path4314-4"
+ 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="marker4316-9"
+ style="overflow:visible">
+ <path
+ id="path4318-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.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker4320-0"
+ style="overflow:visible">
+ <path
+ id="path4322-6"
+ 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="perspective4456"
+ 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-2"
+ style="overflow:visible">
+ <path
+ id="path3211-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.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <inkscape:perspective
+ id="perspective4484"
+ 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="perspective4509"
+ 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-61"
+ style="overflow:visible">
+ <path
+ id="path3211-59"
+ 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="perspective4558"
+ 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="perspective3279"
+ 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="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-9"
+ style="overflow:visible">
+ <path
+ id="path3208-31"
+ 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="Arrow1Lend-9"
+ style="overflow:visible">
+ <path
+ id="path3211-4"
+ 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="perspective3313"
+ 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="perspective3338"
+ 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="perspective5616"
+ 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"
+ 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>
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5624"
+ style="overflow:visible">
+ <path
+ id="path5626"
+ 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="marker5628"
+ style="overflow:visible">
+ <path
+ id="path5630"
+ 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="marker5632"
+ style="overflow:visible">
+ <path
+ id="path5634"
+ 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="marker5636"
+ style="overflow:visible">
+ <path
+ id="path5638"
+ 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="marker5640"
+ style="overflow:visible">
+ <path
+ id="path5642"
+ 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="marker5644"
+ style="overflow:visible">
+ <path
+ id="path5646"
+ 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="marker5648"
+ style="overflow:visible">
+ <path
+ id="path5650"
+ 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
+ inkscape:collect="always"
+ xlink:href="#linearGradient4513"
+ id="linearGradient4519"
+ x1="47.142857"
+ y1="244.50504"
+ x2="677.85718"
+ y2="244.50504"
+ gradientUnits="userSpaceOnUse" />
+ <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
+ id="perspective6744"
+ 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-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>
+ <inkscape:perspective
+ id="perspective6772"
+ 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-5"
+ style="overflow:visible">
+ <path
+ id="path4533-4"
+ 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="perspective6802"
+ 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-44"
+ 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="perspective6830"
+ 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-7"
+ style="overflow:visible">
+ <path
+ id="path4533-8"
+ 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="perspective6864"
+ 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="perspective6889"
+ 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="perspective6926"
+ 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-9"
+ style="overflow:visible">
+ <path
+ id="path4533-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>
+ <inkscape:perspective
+ id="perspective6963"
+ 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="perspective6995"
+ 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-9"
+ 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-48"
+ 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="perspective7029"
+ 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-1"
+ style="overflow:visible">
+ <path
+ id="path4530-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>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-2"
+ 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="perspective7074"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path4530-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="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-59"
+ style="overflow:visible">
+ <path
+ id="path4533-49"
+ 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="perspective7074-7"
+ 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-7"
+ style="overflow:visible">
+ <path
+ id="path4530-11"
+ 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-597"
+ style="overflow:visible">
+ <path
+ id="path4533-76"
+ 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="perspective7151"
+ 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="perspective7173"
+ 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="perspective7195"
+ 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="perspective7195-1"
+ 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="perspective7195-6"
+ 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="perspective7195-0"
+ 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="perspective7195-8"
+ 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="perspective7195-09"
+ 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="perspective7195-80"
+ 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="perspective7195-4"
+ 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="perspective7280"
+ 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="perspective7302"
+ 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="perspective7333"
+ 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="perspective7364"
+ 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="perspective7364-3"
+ 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="perspective7364-31"
+ 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="perspective7682"
+ 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-597-0"
+ style="overflow:visible">
+ <path
+ id="path4533-76-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>
+ <inkscape:perspective
+ id="perspective7682-3"
+ 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-597-1"
+ style="overflow:visible">
+ <path
+ id="path4533-76-8"
+ 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="perspective7682-7"
+ 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-597-9"
+ style="overflow:visible">
+ <path
+ id="path4533-76-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>
+ <inkscape:perspective
+ id="perspective7752"
+ 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="perspective7780"
+ 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="perspective7780-2"
+ 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="perspective7780-0"
+ 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="perspective7834"
+ 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-597-94"
+ style="overflow:visible">
+ <path
+ id="path4533-76-9"
+ 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="perspective7889"
+ 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="perspective7920"
+ 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="perspective7920-6"
+ 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="perspective7971"
+ 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="perspective7971-4"
+ 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="perspective7971-3"
+ 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="perspective8586"
+ 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-7-4"
+ style="overflow:visible">
+ <path
+ id="path4530-11-9"
+ 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-597-94-9"
+ style="overflow:visible">
+ <path
+ id="path4533-76-9-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="perspective8628"
+ 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-7-3"
+ style="overflow:visible">
+ <path
+ id="path4530-11-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-597-94-95"
+ style="overflow:visible">
+ <path
+ id="path4533-76-9-4"
+ 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="perspective8672"
+ 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="perspective8672-5"
+ 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="perspective8672-7"
+ 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="perspective8672-9"
+ 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="perspective8672-72"
+ 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="perspective3119"
+ 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-7-1"
+ style="overflow:visible">
+ <path
+ id="path4530-11-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>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-597-94-4"
+ style="overflow:visible">
+ <path
+ id="path4533-76-9-0"
+ 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="perspective3153"
+ 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-7-48"
+ style="overflow:visible">
+ <path
+ id="path4530-11-8"
+ 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-597-94-2"
+ style="overflow:visible">
+ <path
+ id="path4533-76-9-45"
+ 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="perspective3187"
+ 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-7-17"
+ style="overflow:visible">
+ <path
+ id="path4530-11-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="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-597-94-1"
+ style="overflow:visible">
+ <path
+ id="path4533-76-9-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>
+ <inkscape:perspective
+ id="perspective3223"
+ 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="perspective3223-6"
+ 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="perspective3254"
+ 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="perspective3276"
+ 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="perspective3298"
+ 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="perspective3320"
+ 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-7-2"
+ style="overflow:visible">
+ <path
+ id="path4530-11-21"
+ 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-597-94-6"
+ style="overflow:visible">
+ <path
+ id="path4533-76-9-8"
+ 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="marker3328"
+ style="overflow:visible">
+ <path
+ id="path3330"
+ 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="marker3332"
+ style="overflow:visible">
+ <path
+ id="path3334"
+ 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="marker3336"
+ style="overflow:visible">
+ <path
+ id="path3338"
+ 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="marker3340"
+ style="overflow:visible">
+ <path
+ id="path3342"
+ 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="perspective3454"
+ 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="perspective3454-0"
+ 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="perspective3515"
+ 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="perspective3539"
+ 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="perspective3573"
+ 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="perspective3616"
+ 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="perspective3638"
+ 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="perspective3663"
+ 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="perspective3688"
+ 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-597-8"
+ style="overflow:visible">
+ <path
+ id="path4533-76-4"
+ 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="perspective3716"
+ 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="perspective3751"
+ 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="perspective3837"
+ 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" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4513"
+ id="linearGradient3854"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.73452793,0,0,1.0006382,166.39991,320.95026)"
+ x1="47.142857"
+ y1="244.50504"
+ x2="677.85718"
+ y2="244.50504" />
+ <inkscape:perspective
+ id="perspective3886-0"
+ 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="perspective3928"
+ 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="perspective3960"
+ 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="perspective4007"
+ 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="perspective4042"
+ 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="perspective4084"
+ 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="perspective4162"
+ 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="perspective9350"
+ 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="marker3336-8"
+ style="overflow:visible">
+ <path
+ id="path3338-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="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-597-8-5"
+ style="overflow:visible">
+ <path
+ id="path4533-76-4-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>
+ <inkscape:perspective
+ id="perspective6185"
+ 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="perspective6185-4"
+ 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" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0467057"
+ inkscape:cx="302.77072"
+ inkscape:cy="28.903136"
+ inkscape:document-units="px"
+ inkscape:current-layer="g4029"
+ showgrid="false"
+ inkscape:window-width="958"
+ inkscape:window-height="1059"
+ inkscape:window-x="955"
+ inkscape:window-y="-6"
+ inkscape:window-maximized="0"
+ inkscape:snap-to-guides="false"
+ inkscape:snap-grids="false"
+ inkscape:snap-global="false"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-bbox="true"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3213"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ originx="-94.382468px"
+ originy="-342.55912px" />
+ </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(-94.382468,-485.03167)">
+ <rect
+ style="fill:url(#linearGradient3854);fill-opacity:1;stroke:#000000;stroke-width:0.85731947;stroke-opacity:1"
+ id="rect3697"
+ width="413.29926"
+ height="223.71407"
+ x="205.22496"
+ y="485.56033"
+ rx="4.9632053"
+ ry="6.7613125" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.22520161px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="533.11731"
+ y="704.97418"
+ id="text2912"
+ inkscape:export-filename="/home/matz/barracuda/rapports/mbuf-api-v2-images/octeon_multi.png"
+ inkscape:export-xdpi="112"
+ inkscape:export-ydpi="112"><tspan
+ sodipodi:role="line"
+ x="533.11731"
+ y="704.97418"
+ id="tspan2916"
+ style="font-weight:bold">mempool</tspan></text>
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.71188605;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-2"
+ width="202.62376"
+ height="49.551369"
+ x="219.42996"
+ y="628.4303"
+ rx="4.9559956"
+ ry="7.5408955" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.73036075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-35"
+ width="20.112448"
+ height="38.173069"
+ x="340.3158"
+ y="634.04816"
+ rx="7.8000541"
+ ry="5.0432453" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.73036075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-5"
+ width="20.112448"
+ height="38.173069"
+ x="319.96204"
+ y="634.04816"
+ rx="7.8000541"
+ ry="5.0432453" />
+ <rect
+ style="fill:#cadae7;fill-opacity:1;stroke:#000000;stroke-width:0.73036075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-9"
+ width="20.112448"
+ height="38.173069"
+ x="259.60825"
+ y="634.04816"
+ rx="7.8000541"
+ ry="5.0432453" />
+ <rect
+ style="fill:#cadae7;fill-opacity:1;stroke:#000000;stroke-width:0.73036075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-2"
+ width="20.112448"
+ height="38.173069"
+ x="239.25446"
+ y="634.04816"
+ rx="7.8000541"
+ ry="5.0432453" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="221.08591"
+ y="689.99701"
+ id="text7396"><tspan
+ sodipodi:role="line"
+ id="tspan7398"
+ x="221.08591"
+ y="689.99701">rte_ring: stores memory pool's free objects</tspan></text>
+ <g
+ id="g3556"
+ transform="translate(148.33068,-16.839839)">
+ <rect
+ ry="4.7672176"
+ rx="1.4663186"
+ y="520.37323"
+ x="115.01109"
+ height="31.325468"
+ width="89.278099"
+ id="rect7129-7"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.30787912;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="134.92958"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-59"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="146.02029"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-3-4"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="123.83889"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-4-8"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="172.97792"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-59-9"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="184.06863"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-3-4-0"
+ style="fill:#cadae7;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="161.88724"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-4-8-3"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend-597)"
+ d="m 340.47599,509.43082 c 92.81925,-30.53703 166.95829,13.12827 166.95829,13.12827"
+ id="path7404-03-9"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="266.32944"
+ y="498.09778"
+ id="text7854"><tspan
+ sodipodi:role="line"
+ x="266.32944"
+ y="498.09778"
+ id="tspan3741">Object caches for </tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.96962595px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend-597)"
+ d="m 271.07042,635.43299 c 12.54991,-45.75051 236.78634,-23.96595 236.78634,-23.96595"
+ id="path7404-01"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.12415373px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend-597)"
+ d="m 250.87163,635.89898 c 2.04819,-29.55761 44.90861,-47.82096 95.60619,-50.5881 79.74975,-4.35282 159.95437,-3.19032 159.95437,-3.19032"
+ id="path7404-0"
+ sodipodi:nodetypes="csc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g3438"
+ transform="matrix(1.000443,0,0,0.89465497,-30.439438,249.77294)">
+ <g
+ id="g7958-9"
+ transform="matrix(0.78732502,0,0,0.61113587,448.75651,177.243)">
+ <rect
+ style="fill:#f4d5d3;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-56"
+ width="19.690214"
+ height="46.621613"
+ x="114.32729"
+ y="406.50797" />
+ <rect
+ style="fill:#dcf4d3;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-0-1"
+ width="70.421326"
+ height="46.621613"
+ x="132.82446"
+ y="406.50797" />
+ <rect
+ style="fill:#d3e5f4;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-5-1"
+ width="19.690214"
+ height="46.621613"
+ x="192.63127"
+ y="406.50797" />
+ </g>
+ <text
+ sodipodi:linespacing="125%"
+ transform="scale(1.0074647,0.9925906)"
+ id="text7732"
+ y="447.68558"
+ x="564.28278"
+ style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ xml:space="preserve"><tspan
+ y="447.68558"
+ x="564.28278"
+ id="tspan7734"
+ sodipodi:role="line">obj n</tspan></text>
+ </g>
+ <g
+ transform="matrix(0.78732502,0,0,0.52069781,418.57285,302.82991)"
+ id="g7958-9-5">
+ <rect
+ y="406.50797"
+ x="114.32729"
+ height="46.621613"
+ width="19.690214"
+ id="rect7129-7-6-90-0-1-56-7"
+ style="fill:#f4d5d3;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ y="406.50797"
+ x="132.82446"
+ height="46.621613"
+ width="70.421326"
+ id="rect7129-7-6-90-0-1-0-1-6"
+ style="fill:#dcf4d3;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ y="406.50797"
+ x="192.63127"
+ height="46.621613"
+ width="19.690214"
+ id="rect7129-7-6-90-0-1-5-1-1"
+ style="fill:#d3e5f4;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="533.6839"
+ y="533.18359"
+ id="text7732-8"
+ transform="scale(1.0074647,0.9925906)"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan7734-9"
+ x="533.6839"
+ y="533.18359">obj 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="502.64444"
+ y="500.12582"
+ id="text8612-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan8614-7"
+ x="502.64444"
+ y="500.12582">header</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="566.88733"
+ y="500.12582"
+ id="text8616-95"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan8618-43"
+ x="566.88733"
+ y="500.12582">trailer</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.86462426px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart-7);marker-end:url(#Arrow1Mend-597-94)"
+ d="m 526.19603,547.89632 40.68597,0"
+ id="path8024-8-3-1"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="545.97205"
+ y="542.58704"
+ id="text8616-9-2"
+ transform="scale(0.96857892,1.0324404)"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan8618-4-3"
+ x="545.97205"
+ y="542.58704">elt_size</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.59905624;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.59905608, 1.1981122;stroke-dashoffset:0"
+ d="m 569.57224,530.53402 0,22.6942"
+ id="path8660-7-3"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.70777601px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart-7);marker-end:url(#Arrow1Mend-597-94)"
+ d="m 571.28305,508.02829 12.97818,0"
+ id="path8024-8-3-5-4"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.70777601px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart-7);marker-end:url(#Arrow1Mend-597-94)"
+ d="m 507.94714,508.02829 12.97818,0"
+ id="path8024-8-3-5-2-1"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.63320398;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.6332038, 1.26640764;stroke-dashoffset:0"
+ d="m 585.08147,497.83723 0,25.36643"
+ id="path8660-7-7-1"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.63320398;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.6332038, 1.26640764;stroke-dashoffset:0"
+ d="m 569.55432,497.83723 0,25.36643"
+ id="path8660-7-1-3"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.63320398;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.6332038, 1.26640764;stroke-dashoffset:0"
+ d="m 522.51589,497.83723 0,25.36643"
+ id="path8660-7-1-4-8"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.63320398;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.6332038, 1.26640764;stroke-dashoffset:0"
+ d="m 507.96116,497.83723 0,25.36643"
+ id="path8660-7-1-4-2-7"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.63320398;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.6332038, 1.26640764;stroke-dashoffset:0"
+ d="m 522.51589,530.55109 0,25.36643"
+ id="path8660-7-1-4-2-3-4"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(1.000443,0,0,0.89465497,-30.439438,229.94403)"
+ id="g3438-2">
+ <g
+ id="g7958-9-7"
+ transform="matrix(0.78732502,0,0,0.61113587,448.75651,159.243)">
+ <rect
+ style="fill:#f4d5d3;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-56-79"
+ width="19.690214"
+ height="46.621613"
+ x="114.32729"
+ y="406.50797" />
+ <rect
+ style="fill:#dcf4d3;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-0-1-3"
+ width="70.421326"
+ height="46.621613"
+ x="132.82446"
+ y="406.50797" />
+ <rect
+ style="fill:#d3e5f4;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-5-1-19"
+ width="19.690214"
+ height="46.621613"
+ x="192.63127"
+ y="406.50797" />
+ </g>
+ <text
+ sodipodi:linespacing="125%"
+ transform="scale(1.0074647,0.9925906)"
+ id="text7732-86"
+ y="429.55127"
+ x="564.28278"
+ style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ xml:space="preserve"><tspan
+ y="429.55127"
+ x="564.28278"
+ id="tspan7734-5"
+ sodipodi:role="line">obj 2</tspan></text>
+ </g>
+ <g
+ transform="matrix(1.000443,0,0,0.89465497,-30.439438,201.89749)"
+ id="g3438-28">
+ <g
+ id="g7958-9-6"
+ transform="matrix(0.78732502,0,0,0.61113587,448.75651,159.243)">
+ <rect
+ style="fill:#f4d5d3;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-56-0"
+ width="19.690214"
+ height="46.621613"
+ x="114.32729"
+ y="406.50797" />
+ <rect
+ style="fill:#dcf4d3;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-0-1-2"
+ width="70.421326"
+ height="46.621613"
+ x="132.82446"
+ y="406.50797" />
+ <rect
+ style="fill:#d3e5f4;fill-opacity:1;stroke:#000000;stroke-width:0.8069638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-90-0-1-5-1-4"
+ width="19.690214"
+ height="46.621613"
+ x="192.63127"
+ y="406.50797" />
+ </g>
+ <text
+ sodipodi:linespacing="125%"
+ transform="scale(1.0074647,0.9925906)"
+ id="text7732-865"
+ y="429.55127"
+ x="564.28278"
+ style="font-size:9px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ xml:space="preserve"><tspan
+ y="429.55127"
+ x="564.28278"
+ id="tspan7734-0"
+ sodipodi:role="line">obj 1</tspan></text>
+ </g>
+ <g
+ transform="translate(149.18412,20.841779)"
+ id="g3556-6">
+ <rect
+ ry="4.7672176"
+ rx="1.4663186"
+ y="520.37323"
+ x="115.01109"
+ height="31.325468"
+ width="89.278099"
+ id="rect7129-7-1"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.30787912;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="134.92958"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-59-3"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="146.02029"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-3-4-8"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="123.83889"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-4-8-9"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="172.97792"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-59-9-3"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="184.06863"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-3-4-0-4"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <rect
+ ry="3.2512298"
+ rx="4.1153607"
+ y="524.04962"
+ x="161.88724"
+ height="24.609037"
+ width="10.611463"
+ id="rect7129-7-6-4-8-3-4"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.42595267;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ </g>
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.73036075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-35-0"
+ width="20.112448"
+ height="38.173069"
+ x="380.38757"
+ y="634.04816"
+ rx="7.8000541"
+ ry="5.0432453" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.73036075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-5-6"
+ width="20.112448"
+ height="38.173069"
+ x="360.03381"
+ y="634.04816"
+ rx="7.8000541"
+ ry="5.0432453" />
+ <rect
+ style="fill:#cadae7;fill-opacity:1;stroke:#000000;stroke-width:0.73036075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-9-6"
+ width="20.112448"
+ height="38.173069"
+ x="300.46088"
+ y="634.04816"
+ rx="7.8000541"
+ ry="5.0432453" />
+ <rect
+ style="fill:#cadae7;fill-opacity:1;stroke:#000000;stroke-width:0.73036075;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect7129-7-6-2-1"
+ width="20.112448"
+ height="38.173069"
+ x="280.10709"
+ y="634.04816"
+ rx="7.8000541"
+ ry="5.0432453" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.96962595px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend-597)"
+ d="m 309.03989,635.58347 c 54.10887,-39.54055 199.04889,6.60616 199.04889,6.60616"
+ id="path7404-01-9"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="226.20416"
+ y="527.87885"
+ id="text7854-7"><tspan
+ sodipodi:role="line"
+ x="226.20416"
+ y="527.87885"
+ id="tspan3741-3">core 0 </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="226.20416"
+ y="561.84998"
+ id="text7854-7-8"><tspan
+ sodipodi:role="line"
+ x="226.20416"
+ y="561.84998"
+ id="tspan3741-3-4">core 1 </tspan></text>
+ <rect
+ style="fill:#fdd99b"
+ id="rect3876"
+ width="72.608757"
+ height="34.871315"
+ x="95.060158"
+ y="494.42117"
+ rx="0"
+ ry="6.9517722" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="100.74176"
+ y="503.22147"
+ id="text7854-76"><tspan
+ sodipodi:role="line"
+ x="100.74176"
+ y="503.22147"
+ id="tspan3903">Core 0</tspan></text>
+ <g
+ id="g4029"
+ transform="translate(-53.501193,101.7478)">
+ <rect
+ rx="0.47768921"
+ ry="6.9264936"
+ y="406.16937"
+ x="153.81593"
+ height="13.852987"
+ width="54.934261"
+ id="rect4027"
+ style="fill:#b3defd" />
+ <text
+ id="text7854-76-1"
+ y="415.91406"
+ x="157.29335"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:9px"
+ id="tspan3903-4"
+ y="415.91406"
+ x="157.29335"
+ sodipodi:role="line">App A - ring</tspan></text>
+ </g>
+ <rect
+ style="fill:#fdd99b"
+ id="rect3876-2"
+ width="72.608757"
+ height="46.813545"
+ x="94.482468"
+ y="540.22198"
+ rx="0"
+ ry="9.3325157" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="100.16406"
+ y="549.02228"
+ id="text7854-76-0"><tspan
+ sodipodi:role="line"
+ x="100.16406"
+ y="549.02228"
+ id="tspan3903-0">Core 1</tspan></text>
+ <g
+ id="g4029-1"
+ transform="translate(-54.078888,147.54861)">
+ <rect
+ rx="0.47768921"
+ ry="6.9264936"
+ y="406.16937"
+ x="153.81593"
+ height="13.852987"
+ width="54.934261"
+ id="rect4027-4"
+ style="fill:#b3defd" />
+ <text
+ id="text7854-76-1-6"
+ y="415.91406"
+ x="157.29335"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:9px"
+ id="tspan3903-4-0"
+ y="415.91406"
+ x="157.29335"
+ sodipodi:role="line">App B - ring</tspan></text>
+ </g>
+ <g
+ transform="translate(-0.5777,45.80081)"
+ id="g4065-7">
+ <g
+ transform="translate(140.67947,34.989454)"
+ id="g4029-7-1">
+ <g
+ id="g4071-7"
+ transform="translate(-194.18066,82.162546)">
+ <rect
+ rx="0.47768921"
+ ry="6.9264936"
+ y="406.16937"
+ x="153.81593"
+ height="13.852987"
+ width="54.934261"
+ id="rect4027-5-7"
+ style="fill:#b3defd" />
+ <text
+ id="text7854-76-1-4-7"
+ y="415.91406"
+ x="157.29335"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-size:9px"
+ id="tspan3903-4-1-7"
+ y="415.91406"
+ x="157.29335"
+ sodipodi:role="line">App C - ring</tspan></text>
+ </g>
+ </g>
+ </g>
+ <path
+ style="fill:none;stroke:#00c800;stroke-width:1.32761669;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3.4000001;stroke-opacity:1;stroke-dasharray:1.32761664, 1.32761664;stroke-dashoffset:0;marker-start:url(#marker3336);marker-mid:none;marker-end:url(#Arrow1Mend-597-8)"
+ d="m 168.54117,516.87256 c 94.74872,0 94.74872,0 94.74872,0"
+ id="path4182"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#00c800;stroke-width:1.32761669;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3.4000001;stroke-opacity:1;stroke-dasharray:1.32761664, 1.32761664;stroke-dashoffset:0;marker-start:url(#marker3336);marker-mid:none;marker-end:url(#Arrow1Mend-597-8)"
+ d="m 169.01886,550.31081 c 94.74872,0 94.74872,0 94.74872,0"
+ id="path4182-3"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#00ed00;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.91891892;stroke-dasharray:6, 1;stroke-dashoffset:0;marker-start:url(#marker3336-8);marker-mid:none;marker-end:url(#Arrow1Mend-597-8-5)"
+ d="m 390.74978,523.08253 62.0996,0 0.95537,134.23068 -24.83983,0"
+ id="path3159"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="371.70807"
+ y="551.9433"
+ id="text7396-0"><tspan
+ sodipodi:role="line"
+ id="tspan7398-9"
+ x="371.70807"
+ y="551.9433">If cache empty get from ring</tspan><tspan
+ sodipodi:role="line"
+ x="371.70807"
+ y="564.4433"
+ id="tspan6215">if cache full move to ring</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/multi_process_memory.svg b/doc/guides/prog_guide/img/multi_process_memory.svg
new file mode 100644
index 0000000..fee95a0
--- /dev/null
+++ b/doc/guides/prog_guide/img/multi_process_memory.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2011>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="975.5733"
+ height="710.76343"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="multi_process_memory.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.98994949"
+ inkscape:cx="460.57875"
+ inkscape:cy="389.26254"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1910"
+ inkscape:window-height="1170"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-40.364645,-324.23417)">
+ <image
+ y="324.33417"
+ x="40.464645"
+ id="image2993"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABRkAAAO5CAYAAACdSiJSAAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzs3X+UlPWdJ/qP/BaQBhFQwBYTgjhkRMU4yNGsYphxxjTJHqNHc483azYomslJ5sCe3J2AuSrZ ubkDe83JRAl4J+t6VriS7Ekgk7hrwDFmlTghgjOOQvyBBFRQgUYhyM/7R1EPT3VXVVf3U9VV3bxe 5/TJU1XPj8/zfZ6u0G+/3+cbAQAAAAAAAAAAAAAAAAAA0COdVu7Dv/jmk2f3O+3Y35x2Wvy7bqoH AACAyqyMY0e+/ZN7/mxjvQsBgH5lP+xz7MHTIj7bXcUAAABQsZuP9+k3OSIuqXchANCn3IcCRgAA gMZ1WsTF9a4BACI6CBkBAAAAADpSdrh0Wz++e2at6gAAAKACn713Xb1LAIB29GQEAAAAADIRMgIA AAAAmQgZAQAAAIBMhIwAAAAAQCZCRgAAAAAgEyEjAAAAAJCJkBEAAAAAyETICAAAAABkImQEAAAA ADIRMgIAAAAAmQgZAQAAAIBMhIwAAAAAQCZCRgAAAAAgEyEjAAAAAJCJkBEAAAAAyKRfvQuge23b tq3gdXNzc50qAQAAAKC36NaejGvWrInTTjut7M/ChQtj+fLlsWnTpqrue/bs2bFkyZJYv3593Wtd smRJso+O6tm1a1fMnj07Wb9tSFiJ1tbWWLlyZZx22mlx3nnnFfzkz6Oz50B1Vfv+BQAAAOhO3Roy btmypcN1Fi1aFLfffntcfPHFMXv27Fi3bl1V9r1mzZqYP39+XHHFFTF79uwOQ7Va1pp24MCBsp9/ 85vfjDVr1kRExIIFCzrd83DTpk1x6623xi233FJynUWLFsXFF1+cHIfuV+37FwAAAKA71W249Ny5 c2PixInt3n/qqaeSsGvNmjWxZs2amDt3btxzzz0xevToLu/7lVdeiaVLlxbsd+PGjTF16tS61lrO kiVLkppbWlriK1/5Sqe2b21tjYULFyY1trS0xJw5c5JzfvPNN+Of//mf4/bbb4+IyoJVaq/a9y8A AABArdUtZLzxxhtj5syZ7d6fN29ebNu2LVatWhXz58+PiIilS5fGjh074pFHHommpqYu7/s//sf/ GH/5l3+ZhG4XX3xx7N27t8N91rLWUvI91/IeeuihTgeXP//5z5NznTt3bjz44IMFnzc3N8f06dPj pptuiscee6zLtVJd1b5/AQAAAGqtIWeXbm5ujnnz5sWzzz6bvLdmzZpYvHhx5v0+9NBDBe/98pe/ zLzPate6adOmmD17dvJ648aNXeoZ+eijjybLc+fOLbleU1NTzJkzJ+bMmdPpY9B9anH/AgAAAFRD Q4aMedOnT4+1a9cmrxctWpT5WXSjR4+OZcuWJa+rNUS4WrXu2rUrFi5cmLxevXp1l4fEpp+xOGLE iC7tg8ZSq/sXAAAAIIuGDhkjImbOnFnQC++HP/xh5n1+9KMfTZbTQ5Kzqkat3/3ud5NwcNmyZdHS 0lKV2g4ePFiV/WzatCmWL19eMOP1woULY+XKldHa2trh9suXL48lS5YUhGMrV65M9rdw4cLYsmVL tLa2xpIlS2LJkiUVT0izZcuWZJty4Vt3nUOtVHL/Zqkx3z533nlnwQzXXZ3dev369QUzqs+ePbtT s7JnvV4REdu2bYuVK1cWnNOdd94ZK1eu7HDG9izbAgAAABHxmXvWHk//ZLV48eLjEXE8Io6vXVv5 /jZu3JhsFxHH9+7dm2nfa9euLdhfo9S6bNmy5P0FCxZUfMxSWlpakv0tXrw407527tx5fO7cuQXn VuynXFu98cYb7dZbsGBB0X3s3Lmzw3ZsK72vjRs31v0cOqOa929Xa9y5c2fR9dr+tLS0FG3ftjZv 3lxwDxb7mTt37vGdO3cW3b4a1+v48ePHV69e3eE+Nm/eXPVtAQBqpe3faaX/ogOA7tPwPRkjot1w 4a1bt1Zt3wsWLKjaviK6Xuu6deuSWZ5bWlqq0sPy85//fLI8f/78WLlyZZf2s2vXrvjSl76UzG48 d+7cWLt2bfKTfv7ktddeG+vWratovwsXLoxFixYV/Wz06NEFvUJfeumlsvtqbW0t2Ffb61CPc+gO ldy/ldSYb5/0egsWLIjVq1e3a581a9bExRdfXLYn4pYtW+KCCy4omNl82bJlyb7yPXSXLl0aP/nJ T0rWk/V6pZ9v2tLSEitWrEj2sXr16qSO7du3V3VbAAAAIKVRejIeP368oEdTsW07s+/0vlasWFH3 Wjdv3lzQM6pUz66uaNuTbO7cuRX1QktL924r1V6V9OBM97BL1/Xss88m6+zcuTPZNt1jr6Oenc8+ +2yy7rJlyxrmHCpVzfu3KzWm22fBggVF78G9e/e26+lY6jzTxy12PY4fP3l9i/Wyrdb1SrfVG2+8 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 ImQEAAAAAFIRMgIAAAAAqQgZAQAAAIBUhIwAAAAAQCpCRgAAAAAgFSEjAAAAAJCKkBEAAAAASEXI CAAAAACkImQEAAAAAFIRMgIAAAAAqQgZAQAAAIBUhIwAAAAAQCpCRgAAAAAgFSEjAAAAAJCKkBEA AAAASEXICAAAAACkImQEAAAAAFIRMgIAAAAAqQgZAQAAAIBUqspdAABj3+7N68tdAgAAAMPITEYA AAAAIBUhIwAld/bps8pdAgAj1PSGSeUuAQAYBkJGAEruCzd9JE6d0VDuMgAYYU6pq41P/9nycpcB AAwDezICUHIXnXta/Pj/u6XcZQAAAHCSmMkIAAAAAKQiZAQAAAAAUhEyAgAAAACpCBkBAAAAgFSE jAAAAABAKkJGAAAAACAVISMAAAAAkIqQEQAAAABIRcgIAAAAAKQiZAQAAAAAUhEyAgAAAACpCBkB AAAAgFSEjAAAAABAKkJGAAAAACAVISMAAAAAkIqQEQAAAABIRcgIAAAAAKQiZAQAAAAAUhEyAgAA AACpCBkBAAAAgFSEjAAAAABAKkJGAAAAACAVISMAAAAAkIqQEQAAAABIRcgIAAAAAKQiZAQAAAAA UhEyAgAAAACpCBkBAAAAgFSEjAAAAABAKkJGAAAAACAVISMAAAAAkErVYBp//Ev/OVx1AFAC1y8v /uz/twEAADgZzGQEAAAAAFLpM2Rsj3jhZBUCAADAYLW/U+4KACCin5CxIp//X+3RvvUk1QIAAMAA tUf7gfZ83FPuOgAgop89GX96z8pfR8TCk1MKAGldv+6v2gs///Qf/qSiXLUAAAAwftiTEQAAAABI RcgIAAAAAKQiZAQAAAAAUhEyAgAAAACpCBkBAAAAgFSEjAAAAABAKkJGAAAAACAVISMAAAAAkIqQ EQAAAABIRcgIAAAAAKQiZAQAAAAAUhEyAgAAAACpCBkBAAAAgFSEjAAAAABAKkJGAAAAACAVISMA AAAAkIqQEQAAAABIRcgIAAAAAKQiZAQAAAAAUhEyAgAAAACpCBkBAAAAgFSEjAAAAABAKkJGAAAA ACAVISMAAAAAkIqQEQAAAABIRcgIAAAAAKQiZAQAAAAAUhEyAgAAAACpCBkBAAAAgFSEjAAAAABA KlXlLgCA4fOtdX/VXu4aAAAAGPvMZAQAAAAAUhEyAowp7S+UuwIAAADGnvb2eKev34WMAGNK+/+K iK3lrgIAAICxo729/UBE+z3lrgMAAAAAGMP+f19c9shA08RhAAAAAElFTkSuQmCC "
+ height="710.56342"
+ width="975.37329" />
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/packet_distributor1.png b/doc/guides/prog_guide/img/packet_distributor1.png
new file mode 100644
index 0000000..da8d444
--- /dev/null
+++ b/doc/guides/prog_guide/img/packet_distributor1.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/packet_distributor2.png b/doc/guides/prog_guide/img/packet_distributor2.png
new file mode 100644
index 0000000..6ab58a4
--- /dev/null
+++ b/doc/guides/prog_guide/img/packet_distributor2.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/perf_benchmark.png b/doc/guides/prog_guide/img/perf_benchmark.png
new file mode 100644
index 0000000..aba818c
--- /dev/null
+++ b/doc/guides/prog_guide/img/perf_benchmark.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/pipe_prefetch_sm.png b/doc/guides/prog_guide/img/pipe_prefetch_sm.png
new file mode 100644
index 0000000..983c7ef
--- /dev/null
+++ b/doc/guides/prog_guide/img/pipe_prefetch_sm.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/pkt_drop_probability.png b/doc/guides/prog_guide/img/pkt_drop_probability.png
new file mode 100644
index 0000000..a3a9e99
--- /dev/null
+++ b/doc/guides/prog_guide/img/pkt_drop_probability.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/pkt_flow_kni.png b/doc/guides/prog_guide/img/pkt_flow_kni.png
new file mode 100644
index 0000000..ab730bb
--- /dev/null
+++ b/doc/guides/prog_guide/img/pkt_flow_kni.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/pkt_proc_pipeline_qos.png b/doc/guides/prog_guide/img/pkt_proc_pipeline_qos.png
new file mode 100644
index 0000000..3bc2e7b
--- /dev/null
+++ b/doc/guides/prog_guide/img/pkt_proc_pipeline_qos.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/prefetch_pipeline.png b/doc/guides/prog_guide/img/prefetch_pipeline.png
new file mode 100644
index 0000000..dc4843c
--- /dev/null
+++ b/doc/guides/prog_guide/img/prefetch_pipeline.png
Binary files differ
diff --git a/doc/guides/prog_guide/img/ring-dequeue1.svg b/doc/guides/prog_guide/img/ring-dequeue1.svg
new file mode 100644
index 0000000..7857e14
--- /dev/null
+++ b/doc/guides/prog_guide/img/ring-dequeue1.svg
@@ -0,0 +1,690 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="483.85715"
+ height="379.43784"
+ id="svg3388"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ring-dequeue1.svg"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/ring-dequeue1.png"
+ inkscape:export-xdpi="200"
+ inkscape:export-ydpi="200">
+ <defs
+ id="defs3390">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path4317"
+ 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
+ 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="perspective3396" />
+ <inkscape:perspective
+ id="perspective4180"
+ 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="perspective4180-6"
+ 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="perspective4180-0"
+ 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="perspective4180-3"
+ 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="perspective4180-06"
+ 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="perspective4180-5"
+ 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="perspective4180-7"
+ 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="perspective4180-69"
+ 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="perspective4281"
+ 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="perspective4281-2"
+ 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="perspective4767"
+ 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-7"
+ style="overflow:visible">
+ <path
+ id="path4317-4"
+ 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="perspective4799"
+ 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="perspective4824"
+ 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="perspective4915"
+ 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="perspective4937"
+ 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="perspective4962"
+ 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="perspective4993"
+ 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-0"
+ style="overflow:visible">
+ <path
+ id="path4317-6"
+ 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="marker4999"
+ style="overflow:visible">
+ <path
+ id="path5001"
+ 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="perspective5091"
+ 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-9"
+ style="overflow:visible">
+ <path
+ id="path4317-0"
+ 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="perspective5121"
+ 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="perspective5121-7"
+ 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="perspective5121-1"
+ 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="perspective5121-9"
+ 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="perspective5710"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path4317-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.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <inkscape:perspective
+ id="perspective5738"
+ 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="perspective3256"
+ 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-4"
+ style="overflow:visible">
+ <path
+ id="path4317-78"
+ 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="marker3262"
+ style="overflow:visible">
+ <path
+ id="path3264"
+ 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="marker3266"
+ style="overflow:visible">
+ <path
+ id="path3268"
+ 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>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="227.73116"
+ inkscape:cy="153.16458"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="958"
+ inkscape:window-height="1059"
+ inkscape:window-x="955"
+ inkscape:window-y="-6"
+ inkscape:window-maximized="0"
+ inkscape:snap-grids="false"
+ inkscape:snap-to-guides="true"
+ showguides="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5162"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ originx="-163.07143px"
+ originy="-372.13525px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3393">
+ <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(-163.07143,-300.78909)">
+ <rect
+ style="fill:#ffd080;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect4257"
+ width="439.41635"
+ height="58.588848"
+ x="186.87822"
+ y="463.44324"
+ rx="11.631636"
+ ry="11.631636" />
+ <g
+ id="g4259"
+ transform="translate(108.51492,3.9469318)">
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="83.143028"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="137.00014"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-3"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="190.85725"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-1"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="244.71437"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-6"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="298.57147"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-2"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="352.42859"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-15"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="406.28571"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-4"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="460.14282"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-65"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="313.90488"
+ y="495.49646"
+ id="text4269"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271"
+ x="313.90488"
+ y="495.49646">obj1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="368.95203"
+ y="495.49646"
+ id="text4269-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-5"
+ x="368.95203"
+ y="495.49646">obj2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="422.99518"
+ y="495.49646"
+ id="text4269-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-4"
+ x="422.99518"
+ y="495.49646">obj3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 323.57143,578.07647 0,-42.14286"
+ id="path4309"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="289.85715"
+ y="589.505"
+ id="text4787"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789"
+ x="289.85715"
+ y="589.505">cons_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="293.45334"
+ y="601.41034"
+ id="text4787-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0"
+ x="293.45334"
+ y="601.41034">cons_tail</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="507.2981"
+ y="600.81482"
+ id="text4787-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-8"
+ x="507.2981"
+ y="600.81482">prod_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="508.75146"
+ y="587.72028"
+ id="text4787-3-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-8"
+ x="508.75146"
+ y="587.72028">prod_tail</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ id="rect4889"
+ width="482.85715"
+ height="138.57147"
+ x="163.57143"
+ y="315.21933"
+ rx="11.631636"
+ ry="11.631636" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="174.28571"
+ y="310.93362"
+ id="text4891"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4893"
+ x="174.28571"
+ y="310.93362">local variables</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ id="rect4889-8"
+ width="482.85715"
+ height="138.57147"
+ x="163.57143"
+ y="529.93365"
+ rx="11.631636"
+ ry="11.631636" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="170.89287"
+ y="680.09021"
+ id="text4891-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4893-3"
+ x="170.89287"
+ y="680.09021">structure state</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 540,575.57647 0,-42.14286"
+ id="path4309-4-3"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="476.46902"
+ y="495.12097"
+ id="text4269-5-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-4-5"
+ x="476.46902"
+ y="495.12097">obj4</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 322.81905,406.5281 0,42.14286"
+ id="path4309-8"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 539.9619,406.5281 0,42.14286"
+ id="path4309-4-9"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="269.70093"
+ y="398.57574"
+ id="text4787-3-64"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-9"
+ x="269.70093"
+ y="398.57574">cons_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="509.25998"
+ y="398.57574"
+ id="text4787-7-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-8-0"
+ x="509.25998"
+ y="398.57574">prod_tail</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="361.71335"
+ y="398.57574"
+ id="text4787-3-6-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-8-8"
+ x="361.71335"
+ y="398.57574">cons_next</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 378.28037,406.5281 0,42.14286"
+ id="path4309-4-9-9"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/ring-dequeue2.svg b/doc/guides/prog_guide/img/ring-dequeue2.svg
new file mode 100644
index 0000000..9bed373
--- /dev/null
+++ b/doc/guides/prog_guide/img/ring-dequeue2.svg
@@ -0,0 +1,653 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="484.05716"
+ height="383.1066"
+ id="svg3388"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ring-dequeue2.svg">
+ <defs
+ id="defs3390">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path4317"
+ 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
+ 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="perspective3396" />
+ <inkscape:perspective
+ id="perspective4180"
+ 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="perspective4180-6"
+ 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="perspective4180-0"
+ 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="perspective4180-3"
+ 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="perspective4180-06"
+ 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="perspective4180-5"
+ 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="perspective4180-7"
+ 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="perspective4180-69"
+ 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="perspective4281"
+ 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="perspective4281-2"
+ 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="perspective4767"
+ 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-7"
+ style="overflow:visible">
+ <path
+ id="path4317-4"
+ 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="perspective4799"
+ 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="perspective4824"
+ 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="perspective4915"
+ 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="perspective4937"
+ 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="perspective4962"
+ 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="perspective4993"
+ 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-0"
+ style="overflow:visible">
+ <path
+ id="path4317-6"
+ 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="marker4999"
+ style="overflow:visible">
+ <path
+ id="path5001"
+ 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="perspective5091"
+ 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-9"
+ style="overflow:visible">
+ <path
+ id="path4317-0"
+ 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="perspective5121"
+ 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="perspective5121-7"
+ 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="perspective5121-1"
+ 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="perspective5121-9"
+ 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="perspective5710"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path4317-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.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <inkscape:perspective
+ id="perspective5738"
+ 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="perspective5826"
+ 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-63"
+ style="overflow:visible">
+ <path
+ id="path4317-9"
+ 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>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="227.83116"
+ inkscape:cy="155.28411"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="958"
+ inkscape:window-height="1002"
+ inkscape:window-x="376"
+ inkscape:window-y="19"
+ inkscape:window-maximized="0"
+ inkscape:snap-grids="false"
+ inkscape:snap-to-guides="true"
+ showguides="false"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5162"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ originx="-162.97143px"
+ originy="-370.01572px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3393">
+ <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(-162.97143,-299.23987)">
+ <rect
+ style="fill:#ffd080;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect4257"
+ width="439.41635"
+ height="58.588848"
+ x="186.87822"
+ y="463.44324"
+ rx="11.631636"
+ ry="11.631636" />
+ <g
+ id="g4259"
+ transform="translate(108.51492,3.9469318)">
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="83.143028"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="137.00014"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-3"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="190.85725"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-1"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="244.71437"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-6"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="298.57147"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-2"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="352.42859"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-15"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="406.28571"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-4"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="460.14282"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-65"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="368.95203"
+ y="495.49646"
+ id="text4269-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-5"
+ x="368.95203"
+ y="495.49646">obj2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="422.99518"
+ y="495.49646"
+ id="text4269-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-4"
+ x="422.99518"
+ y="495.49646">obj3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 323.57143,578.07647 0,-42.14286"
+ id="path4309"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="355.71429"
+ y="591.505"
+ id="text4787"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789"
+ x="355.71429"
+ y="591.505">cons_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="276.16763"
+ y="591.41034"
+ id="text4787-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0"
+ x="276.16763"
+ y="591.41034">cons_tail</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="503.2981"
+ y="606.81482"
+ id="text4787-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-8"
+ x="503.2981"
+ y="606.81482">prod_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="510.75146"
+ y="589.72028"
+ id="text4787-3-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-8"
+ x="510.75146"
+ y="589.72028">prod_tail</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ id="rect4889"
+ width="482.85715"
+ height="138.57147"
+ x="163.57143"
+ y="315.21933"
+ rx="11.631636"
+ ry="11.631636" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="174.28571"
+ y="310.93362"
+ id="text4891"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4893"
+ x="174.28571"
+ y="310.93362">local variables</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ id="rect4889-8"
+ width="482.85715"
+ height="138.57147"
+ x="163.57143"
+ y="529.93365"
+ rx="11.631636"
+ ry="11.631636" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="170.89287"
+ y="682.09021"
+ id="text4891-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4893-3"
+ x="170.89287"
+ y="682.09021">structure state</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 325.25296,407.43361 0,42.14286"
+ id="path4309-8"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 542.39581,407.43361 0,42.14286"
+ id="path4309-4-9"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="272.13486"
+ y="399.48123"
+ id="text4787-3-64"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-9"
+ x="272.13486"
+ y="399.48123">cons_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="511.69391"
+ y="399.48123"
+ id="text4787-7-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-8-0"
+ x="511.69391"
+ y="399.48123">prod_tail</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="364.14728"
+ y="399.48123"
+ id="text4787-3-6-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-8-8"
+ x="364.14728"
+ y="399.48123">cons_next</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 380.71428,407.43361 0,42.14286"
+ id="path4309-4-9-9"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 540,575.57647 0,-42.14286"
+ id="path4309-4-3"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="476.46902"
+ y="495.12097"
+ id="text4269-5-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-4-5"
+ x="476.46902"
+ y="495.12097">obj4</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 380.71429,577.71932 0,-42.14286"
+ id="path4309-4"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/ring-dequeue3.svg b/doc/guides/prog_guide/img/ring-dequeue3.svg
new file mode 100644
index 0000000..876aa87
--- /dev/null
+++ b/doc/guides/prog_guide/img/ring-dequeue3.svg
@@ -0,0 +1,648 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="484.05716"
+ height="383.63785"
+ id="svg3388"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ring-dequeue3.svg">
+ <defs
+ id="defs3390">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path4317"
+ 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
+ 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="perspective3396" />
+ <inkscape:perspective
+ id="perspective4180"
+ 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="perspective4180-6"
+ 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="perspective4180-0"
+ 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="perspective4180-3"
+ 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="perspective4180-06"
+ 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="perspective4180-5"
+ 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="perspective4180-7"
+ 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="perspective4180-69"
+ 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="perspective4281"
+ 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="perspective4281-2"
+ 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="perspective4767"
+ 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-7"
+ style="overflow:visible">
+ <path
+ id="path4317-4"
+ 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="perspective4799"
+ 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="perspective4824"
+ 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="perspective4915"
+ 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="perspective4937"
+ 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="perspective4962"
+ 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="perspective4993"
+ 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-0"
+ style="overflow:visible">
+ <path
+ id="path4317-6"
+ 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="marker4999"
+ style="overflow:visible">
+ <path
+ id="path5001"
+ 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="perspective5091"
+ 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-9"
+ style="overflow:visible">
+ <path
+ id="path4317-0"
+ 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="perspective5121"
+ 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="perspective5121-7"
+ 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="perspective5121-1"
+ 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="perspective5121-9"
+ 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="perspective5710"
+ 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-6"
+ style="overflow:visible">
+ <path
+ id="path4317-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.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <inkscape:perspective
+ id="perspective5738"
+ 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="perspective5826"
+ 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-63"
+ style="overflow:visible">
+ <path
+ id="path4317-9"
+ 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>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="227.83116"
+ inkscape:cy="155.26458"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="958"
+ inkscape:window-height="1002"
+ inkscape:window-x="433"
+ inkscape:window-y="26"
+ inkscape:window-maximized="0"
+ inkscape:snap-grids="false"
+ inkscape:snap-to-guides="true"
+ showguides="false"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5162"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ originx="-162.97143px"
+ originy="-370.03525px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3393">
+ <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(-162.97143,-298.68909)">
+ <rect
+ style="fill:#ffd080;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect4257"
+ width="439.41635"
+ height="58.588848"
+ x="186.87822"
+ y="463.44324"
+ rx="11.631636"
+ ry="11.631636" />
+ <g
+ id="g4259"
+ transform="translate(108.51492,3.9469318)">
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="83.143028"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="137.00014"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-3"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="190.85725"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-1"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="244.71437"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-6"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="298.57147"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-2"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="352.42859"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-15"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="406.28571"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-4"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ <rect
+ ry="11.631636"
+ rx="11.631636"
+ y="463.79074"
+ x="460.14282"
+ height="49.999996"
+ width="52.857113"
+ id="rect3398-65"
+ style="fill:#ff8080;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="368.95203"
+ y="495.49646"
+ id="text4269-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-5"
+ x="368.95203"
+ y="495.49646">obj2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="422.99518"
+ y="495.49646"
+ id="text4269-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-4"
+ x="422.99518"
+ y="495.49646">obj3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="345.71429"
+ y="589.505"
+ id="text4787"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789"
+ x="345.71429"
+ y="589.505">cons_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="345.73907"
+ y="601.41034"
+ id="text4787-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0"
+ x="345.73907"
+ y="601.41034">cons_tail</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="505.2981"
+ y="600.81482"
+ id="text4787-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-8"
+ x="505.2981"
+ y="600.81482">prod_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="506.75146"
+ y="587.72028"
+ id="text4787-3-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-8"
+ x="506.75146"
+ y="587.72028">prod_tail</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ id="rect4889"
+ width="482.85715"
+ height="138.57147"
+ x="163.57143"
+ y="315.21933"
+ rx="11.631636"
+ ry="11.631636" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="174.28571"
+ y="308.93362"
+ id="text4891"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4893"
+ x="174.28571"
+ y="308.93362">local variables</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ id="rect4889-8"
+ width="482.85715"
+ height="138.57147"
+ x="163.57143"
+ y="529.93365"
+ rx="11.631636"
+ ry="11.631636" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="170.89287"
+ y="682.09021"
+ id="text4891-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4893-3"
+ x="170.89287"
+ y="682.09021">structure state</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 325.25296,407.43361 0,42.14286"
+ id="path4309-8"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 542.39581,407.43361 0,42.14286"
+ id="path4309-4-9"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="284.13486"
+ y="399.48123"
+ id="text4787-3-64"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-9"
+ x="284.13486"
+ y="399.48123">cons_head</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="513.69391"
+ y="399.48123"
+ id="text4787-7-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-8-0"
+ x="513.69391"
+ y="399.48123">prod_tail</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="370.14728"
+ y="399.48123"
+ id="text4787-3-6-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4789-0-8-8"
+ x="370.14728"
+ y="399.48123">cons_next</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 380.71428,407.43361 0,42.14286"
+ id="path4309-4-9-9"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 540,575.57647 0,-42.14286"
+ id="path4309-4-3"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ x="476.46902"
+ y="495.12097"
+ id="text4269-5-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4271-4-5"
+ x="476.46902"
+ y="495.12097">obj4</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 380.71429,577.71932 0,-42.14286"
+ id="path4309-4"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/guides/prog_guide/img/ring-enqueue1.svg b/doc/guides/prog_guide/img/ring-enqueue1.svg
new file mode 100644
index 0000000..e7030eb
--- /dev/null
+++ b/doc/guides/prog_guide/img/ring-enqueue1.svg
@@ -0,0 +1,599 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<!--
+# Copyright (c) <2010>, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# - Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="484.05716"
+ height="383.63785"
+ id="svg3388"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ring-enqueue1.svg">
+ <defs
+ id="defs3390">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path4317"
+ 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
+ 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="perspective3396" />
+ <inkscape:perspective
+ id="perspective4180"
+ 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="perspective4180-6"
+ 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="perspective4180-0"
+ 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="perspective4180-3"
+ 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="perspective4180-06"
+ 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="perspective4180-5"
+ 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="perspective4180-7"
+ 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="perspective4180-69"
+ 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="perspective4281"
+ 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="perspective4281-2"
+ 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="perspective4767"
+ in