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:
.. code-block:: console
- CONFIG_RTE_LIBRTE_VHOST=n
+ CONFIG_RTE_LIBRTE_VHOST=y
- 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:
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):
-
- .. 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
.. code-block:: console
- user@target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge --
+ user@target:~$ ./build/app/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
**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/app/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/app/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/app/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/app/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/app/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/app/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/app/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
---------------------------------------------