doc: add new introduction to sample app guides
Add new Introduction Section into the sample app guides. Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
This commit is contained in:
parent
7cacb05655
commit
bef33b0a9d
@ -1,5 +1,5 @@
|
||||
.. BSD LICENSE
|
||||
Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
|
||||
Copyright(c) 2010-2017 Intel Corporation. All rights reserved.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@ -28,42 +28,115 @@
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Introduction
|
||||
============
|
||||
Introduction to the DPDK Sample Applications
|
||||
============================================
|
||||
|
||||
This document describes the sample applications that are included in the Data Plane Development Kit (DPDK).
|
||||
Each chapter describes a sample application that showcases specific functionality and
|
||||
provides instructions on how to compile, run and use the sample application.
|
||||
The DPDK Sample Applications are small standalone applications which
|
||||
demonstrate various features of DPDK. They can be considered as a cookbook of
|
||||
DPDK features. Users interested in getting started with DPDK can take the
|
||||
applications, try out the features, and then extend them to fit their needs.
|
||||
|
||||
Documentation Roadmap
|
||||
---------------------
|
||||
|
||||
The following is a list of DPDK documents in suggested reading order:
|
||||
The DPDK Sample Applications
|
||||
----------------------------
|
||||
|
||||
* **Release Notes** : Provides release-specific information, including supported features,
|
||||
limitations, fixed issues, known issues and so on.
|
||||
Also, provides the answers to frequently asked questions in FAQ format.
|
||||
Table :numref:`table_sample_apps` shows a list of some of the main sample
|
||||
applications that are available in the examples directory of DPDK:
|
||||
|
||||
* **Getting Started Guides** : Describes how to install and
|
||||
configure the DPDK software for your operating system;
|
||||
designed to get users up and running quickly with the software.
|
||||
.. _table_sample_apps:
|
||||
|
||||
* **Programmer's Guide:** Describes:
|
||||
.. table:: **Some of the DPDK Sample applications**
|
||||
|
||||
* The software architecture and how to use it (through examples),
|
||||
specifically in a Linux* application (linuxapp) environment.
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Bonding | Netmap Compatibility |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Command Line | Packet Ordering |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Distributor | Performance Thread |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Ethtool | Precision Time Protocol (PTP) Client |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Exception Path | Quality of Service (QoS) Metering |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Hello World | QoS Scheduler |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Internet Protocol (IP) Fragmentation | Quota and Watermark |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| IP Pipeline | RX/TX Callbacks |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| IP Reassembly | Server node EFD |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| IPsec Security Gateway | Basic Forwarding/Skeleton App |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| IPv4 multicast | Tunnel End Point (TEP) termination |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Kernel NIC Interface | Timer |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Network Layer 2 Forwarding + variants | Vhost |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Network Layer 3 Forwarding + variants | Vhost Xen |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Link Status Interrupt | VMDQ Forwarding |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Load Balancer | VMDQ and DCB Forwarding |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
| Multi-process | VM Power Management |
|
||||
+---------------------------------------+--------------------------------------+
|
||||
|
||||
* The content of the DPDK, the build system
|
||||
(including the commands that can be used in the root DPDK Makefile to build the development kit and an application)
|
||||
and guidelines for porting an application.
|
||||
These examples range from simple to reasonably complex but most are designed
|
||||
to demonstrate one particular feature of DPDK. Some of the more interesting
|
||||
examples are highlighted below.
|
||||
|
||||
* Optimizations used in the software and those that should be considered for new development
|
||||
|
||||
A glossary of terms is also provided.
|
||||
* :doc:`Hello World<hello_world>`: As with most introductions to a
|
||||
programming framework a good place to start is with the Hello World
|
||||
application. The Hello World example sets up the DPDK Environment Abstraction
|
||||
Layer (EAL), and prints a simple "Hello World" message to each of the DPDK
|
||||
enabled cores. This application doesn't do any packet forwarding but it is a
|
||||
good way to test if the DPDK environment is compiled and set up properly.
|
||||
|
||||
* **API Reference** : Provides detailed information about DPDK functions,
|
||||
data structures and other programming constructs.
|
||||
* :doc:`Basic Forwarding/Skeleton Application<skeleton>`: The Basic
|
||||
Forwarding/Skeleton contains the minimum amount of code required to enable
|
||||
basic packet forwarding with DPDK. This allows you to test if your network
|
||||
interfaces are working with DPDK.
|
||||
|
||||
* **Sample Applications User Guide** : Describes a set of sample applications.
|
||||
Each chapter describes a sample application that showcases specific functionality and
|
||||
provides instructions on how to compile, run and use the sample application.
|
||||
* :doc:`Network Layer 2 forwarding<l2_forward_real_virtual>`: The Network Layer 2
|
||||
forwarding, or ``l2fwd`` application does forwarding based on Ethernet MAC
|
||||
addresses like a simple switch.
|
||||
|
||||
* :doc:`Network Layer 3 forwarding<l3_forward>`: The Network Layer3
|
||||
forwarding, or ``l3fwd`` application does forwarding based on Internet
|
||||
Protocol, IPv4 or IPv6 like a simple router.
|
||||
|
||||
* :doc:`Packet Distributor<dist_app>`: The Packet Distributor
|
||||
demonstrates how to distribute packets arriving on an Rx port to different
|
||||
cores for processing and transmission.
|
||||
|
||||
* :doc:`Multi-Process Application<multi_process>`: The
|
||||
multi-process application shows how two DPDK processes can work together using
|
||||
queues and memory pools to share information.
|
||||
|
||||
* :doc:`RX/TX callbacks Application<rxtx_callbacks>`: The RX/TX
|
||||
callbacks sample application is a packet forwarding application that
|
||||
demonstrates the use of user defined callbacks on received and transmitted
|
||||
packets. The application calculates the latency of a packet between RX
|
||||
(packet arrival) and TX (packet transmission) by adding callbacks to the RX
|
||||
and TX packet processing functions.
|
||||
|
||||
* :doc:`IPSec Security Gateway<ipsec_secgw>`: The IPSec Security
|
||||
Gateway application is minimal example of something closer to a real world
|
||||
example. This is also a good example of an application using the DPDK
|
||||
Cryptodev framework.
|
||||
|
||||
* :doc:`Precision Time Protocol (PTP) client<ptpclient>`: The PTP
|
||||
client is another minimal implementation of a real world application.
|
||||
In this case the application is a PTP client that communicates with a PTP
|
||||
master clock to synchronize time on a Network Interface Card (NIC) using the
|
||||
IEEE1588 protocol.
|
||||
|
||||
* :doc:`Quality of Service (QoS) Scheduler<qos_scheduler>`: The QoS
|
||||
Scheduler application demonstrates the use of DPDK to provide QoS scheduling.
|
||||
|
||||
There are many more examples shown in the following chapters. Each of the
|
||||
documented sample applications show how to compile, configure and run the
|
||||
application as well as explaining the main functionality of the code.
|
||||
|
Loading…
Reference in New Issue
Block a user