VMDQ and DCB Forwarding Sample Application
==========================================
-The VMDQ and DCB Forwarding sample application is a simple example of packet processing using the Intel® DPDK.
+The VMDQ and DCB Forwarding sample application is a simple example of packet processing using the DPDK.
The application performs L2 forwarding using VMDQ and DCB to divide the incoming traffic into 128 queues.
The traffic splitting is performed in hardware by the VMDQ and DCB features of the Intel® 82599 10 Gigabit Ethernet Controller.
Overview
--------
-This sample application can be used as a starting point for developing a new application that is based on the Intel® DPDK and
+This sample application can be used as a starting point for developing a new application that is based on the DPDK and
uses VMDQ and DCB for traffic partitioning.
The VMDQ and DCB filters work on VLAN traffic to divide the traffic into 128 input queues on the basis of the VLAN ID field and
Then, DCB places each packet into one of either 4 or 8 queues within that group, based upon the VLAN user priority field.
In either case, 16 groups of 8 queues, or 32 groups of 4 queues, the traffic can be split into 128 hardware queues on the NIC,
-each of which can be polled individually by an Intel® DPDK application.
+each of which can be polled individually by a DPDK application.
All traffic is read from a single incoming port (port 0) and output on port 1, without any processing being performed.
The traffic is split into 128 queues on input, where each thread of the application reads from multiple queues.
For example, when run with 8 threads, that is, with the -c FF option, each thread receives and forwards packets from 16 queues.
-As supplied, the sample application configures the VMDQ feature to have 16 pools with 8 queues each as indicated in Figure 15.
+As supplied, the sample application configures the VMDQ feature to have 16 pools with 8 queues each as indicated in :numref:`figure_vmdq_dcb_example`.
The Intel® 82599 10 Gigabit Ethernet Controller NIC also supports the splitting of traffic into 32 pools of 4 queues each and
this can be used by changing the NUM_POOLS parameter in the supplied code.
The NUM_POOLS parameter can be passed on the command line, after the EAL parameters:
where, NP can be 16 or 32.
-.. _figure_15:
+.. _figure_vmdq_dcb_example:
-**Figure 15. Packet Flow Through the VMDQ and DCB Sample Application**
+.. figure:: img/vmdq_dcb_example.*
-.. image18_png has been replaced
+ Packet Flow Through the VMDQ and DCB Sample Application
-|vmdq_dcb_example|
In Linux* user space, the application can display statistics with the number of packets received on each queue.
To have the application display the statistics, send a SIGHUP signal to the running application process, as follows:
export RTE_TARGET=x86_64-native-linuxapp-gcc
- See the *Intel® DPDK Getting Started Guide* for possible RTE_TARGET values.
+ See the *DPDK Getting Started Guide* for possible RTE_TARGET values.
#. Build the application:
user@target:~$ ./build/vmdq_dcb -c f -n 4 -- -p 0x3 --nb-pools 16
-Refer to the *Intel® DPDK Getting Started Guide* for general information on running applications and
+Refer to the *DPDK Getting Started Guide* for general information on running applications and
the Environment Abstraction Layer (EAL) options.
Explanation
.. code-block:: c
- /* empty vmdq+dcb configuration structure. Filled in programatically */
+ /* empty vmdq+dcb configuration structure. Filled in programmatically */
static const struct rte_eth_conf vmdq_dcb_conf_default = {
.rxmode = {
Once the network port has been initialized using the correct VMDQ and DCB values,
the initialization of the port's RX and TX hardware rings is performed similarly to that
in the L2 Forwarding sample application.
-See Chapter 9, "L2 Forwarding Sample Aplication (in Real and Virtualized Environments)" for more information.
+See Chapter 9, "L2 Forwarding Sample Application (in Real and Virtualized Environments)" for more information.
Statistics Display
~~~~~~~~~~~~~~~~~~
Please note that the statistics output will appear on the terminal where the vmdq_dcb_app is running,
rather than the terminal from which the HUP signal was sent.
-
-.. |vmdq_dcb_example| image:: img/vmdq_dcb_example.svg