-
-.. BSD LICENSE
- Copyright(c) 2010-2015 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.
-
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2010-2015 Intel Corporation.
TEP termination Sample Application
==================================
In a typical setup, the network overlay tunnel is terminated at the Virtual/Tunnel End Point (VEP/TEP).
The TEP is normally located at the physical host level ideally in the software switch.
Due to processing constraints and the inevitable bottleneck that the switch
-becomes the ability to offload overlay support features becomes an important requirement.
-IntelĀ® XL710 10/40 G Ethernet network card provides hardware filtering
+becomes, the ability to offload overlay support features becomes an important requirement.
+IntelĀ® XL710 10/40 Gigabit Ethernet network card provides hardware filtering
and offload capabilities to support overlay networks implementations such as MAC in UDP and MAC in GRE.
Sample Code Overview
* TSO offload support for tunneling packet.
-The following figure shows the framework of the TEP termination sample application based on vhost-cuse.
+The following figure shows the framework of the TEP termination sample
+application based on DPDK vhost lib.
.. _figure_tep_termination_arch:
* Fedora* 20
-Prerequisites
--------------
-
-Refer to the guide in section 27.4 in the vhost sample.
-
-Compiling the Sample Code
--------------------------
-#. Compile vhost lib:
-
- To enable vhost, turn on vhost library in the configure file config/common_linuxapp.
-
- .. code-block:: console
-
- CONFIG_RTE_LIBRTE_VHOST=n
-
- vhost user is turned on by default in the configure file config/common_linuxapp.
- To enable vhost cuse, disable vhost user.
-
- .. code-block:: console
-
- CONFIG_RTE_LIBRTE_VHOST_USER=y
-
- After vhost is enabled and the implementation is selected, build the vhost library.
-
-#. Go to the examples directory:
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/examples/tep_termination
-
-#. Set the target (a default target is used if not specified). For example:
-
- .. code-block:: console
-
- export RTE_TARGET=x86_64-native-linuxapp-gcc
-
- See the DPDK Getting Started Guide for possible RTE_TARGET values.
-
-#. Build the application:
-
- .. code-block:: console
-
- cd ${RTE_SDK}
- make config ${RTE_TARGET}
- make install ${RTE_TARGET}
- cd ${RTE_SDK}/examples/tep_termination
- make
-
-#. Go to the eventfd_link directory(vhost cuse required):
-
- .. code-block:: console
-
- cd ${RTE_SDK}/lib/librte_vhost/eventfd_link
-
-#. Build the eventfd_link kernel module(vhost cuse required):
-
- .. code-block:: console
-
- make
Running the Sample Code
-----------------------
-#. Install the cuse kernel module(vhost cuse required):
-
- .. code-block:: console
-
- modprobe cuse
-
-#. Go to the eventfd_link directory(vhost cuse required):
+Run the tep_termination sample code:
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/lib/librte_vhost/eventfd_link
-
-#. Install the eventfd_link module(vhost cuse required):
-
- .. code-block:: console
-
- insmod ./eventfd_link.ko
-
-#. Go to the examples directory:
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/examples/tep_termination
-
-#. Run the tep_termination sample code:
-
- .. code-block:: console
+.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
- -p 0x1 --dev-basename tep-termination --nb-devices 4
- --udp-port 4789 --filter-type 1
+ user@target:~$ ./<build_dir>/examples/dpdk-tep_termination -l 0-3 -n 4 --huge-dir /mnt/huge --
+ -p 0x1 --dev-basename tep-termination --nb-devices 4
+ --udp-port 4789 --filter-type 1
.. note::
**The same parameters with the vhost sample.**
-Refer to the guide in section 27.6.1 in the vhost sample for the meanings of 'Basename',
-'Stats', 'RX Retry', 'RX Retry Number' and 'RX Retry Delay Time'.
+Refer to :ref:`vhost_app_parameters` for detailed explanation.
**Number of Devices.**
.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
+ user@target:~$ ./<build_dir>/examples/dpdk-tep_termination -l 0-3 -n 4 --huge-dir /mnt/huge --
--nb-devices 2
**Tunneling UDP port.**
.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
+ user@target:~$ ./<build_dir>/examples/dpdk-tep_termination -l 0-3 -n 4 --huge-dir /mnt/huge --
--nb-devices 2 --udp-port 4789
**Filter Type.**
.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
+ user@target:~$ ./<build_dir>/examples/dpdk-tep_termination -l 0-3 -n 4 --huge-dir /mnt/huge --
--nb-devices 2 --udp-port 4789 --filter-type 1
**TX Checksum.**
.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
+ user@target:~$ ./<build_dir>/examples/dpdk-tep_termination -l 0-3 -n 4 --huge-dir /mnt/huge --
--nb-devices 2 --tx-checksum
-**TCP segment sise.**
+**TCP segment size.**
The tso-segsz option specifies the TCP segment size for TSO offload for tunneling packet.
The default value is 0, which means TSO offload is disabled.
.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
+ user@target:~$ ./<build_dir>/examples/dpdk-tep_termination -l 0-3 -n 4 --huge-dir /mnt/huge --
--tx-checksum --tso-segsz 800
**Decapsulation option.**
.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
+ user@target:~$ ./<build_dir>/examples/dpdk-tep_termination -l 0-3 -n 4 --huge-dir /mnt/huge --
--nb-devices 4 --udp-port 4789 --decap 1
**Encapsulation option.**
.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
+ user@target:~$ ./<build_dir>/examples/dpdk-tep_termination -l 0-3 -n 4 --huge-dir /mnt/huge --
--nb-devices 4 --udp-port 4789 --encap 1
Running the Virtual Machine (QEMU)
----------------------------------
-Refer to the guide in section 27.7 in the vhost sample.
+Refer to :ref:`vhost_app_run_vm`.
Running DPDK in the Virtual Machine
-----------------------------------
-Refer to the guide in section 27.8 in the vHost sample.
+Refer to :ref:`vhost_app_run_dpdk_inside_guest`.
Passing Traffic to the Virtual Machine Device
---------------------------------------------