mbuf: remove control mbuf
[dpdk.git] / doc / guides / prog_guide / overview.rst
index 5781e72..c01f37e 100644 (file)
@@ -1,45 +1,18 @@
-..  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.
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2014 Intel Corporation.
 
 **Part 1: Architecture Overview**
 
 Overview
 ========
 
-This section gives a global overview of the architecture of Intel® Data Plane Development Kit (Intel® DPDK).
+This section gives a global overview of the architecture of Data Plane Development Kit (DPDK).
 
-The main goal of the Intel® DPDK is to provide a simple,
+The main goal of the DPDK is to provide a simple,
 complete framework for fast packet processing in data plane applications.
 Users may use the code to understand some of the techniques employed,
 to build upon for prototyping or to add their own protocol stacks.
-Alternative ecosystem options that use the Intel® DPDK are available.
+Alternative ecosystem options that use the DPDK are available.
 
 The framework creates a set of libraries for specific environments
 through the creation of an Environment Abstraction Layer (EAL),
@@ -49,9 +22,9 @@ These environments are created through the use of make files and configuration f
 Once the EAL library is created, the user may link with the library to create their own applications.
 Other libraries, outside of EAL, including the Hash,
 Longest Prefix Match (LPM) and rings libraries are also provided.
-Sample applications are provided to help show the user how to use various features of the Intel® DPDK.
+Sample applications are provided to help show the user how to use various features of the DPDK.
 
-The Intel® DPDK implements a run to completion model for packet processing,
+The DPDK implements a run to completion model for packet processing,
 where all resources must be allocated prior to calling Data Plane applications,
 running as execution units on logical processing cores.
 The model does not support a scheduler and all devices are accessed by polling.
@@ -64,15 +37,15 @@ This allows work to be performed in stages and may allow more efficient use of c
 Development Environment
 -----------------------
 
-The Intel® DPDK project installation requires Linux and the associated toolchain,
+The DPDK project installation requires Linux and the associated toolchain,
 such as one or more compilers, assembler, make utility,
-editor and various libraries to create the Intel® DPDK components and libraries.
+editor and various libraries to create the DPDK components and libraries.
 
 Once these libraries are created for the specific environment and architecture,
 they may then be used to create the user's data plane application.
 
 When creating applications for the Linux user space, the glibc library is used.
-For Intel® DPDK applications, two environmental variables (RTE_SDK and RTE_TARGET)
+For DPDK applications, two environmental variables (RTE_SDK and RTE_TARGET)
 must be configured before compiling the applications.
 The following are examples of how the variables can be set:
 
@@ -81,7 +54,7 @@ The following are examples of how the variables can be set:
     export RTE_SDK=/home/user/DPDK
     export RTE_TARGET=x86_64-native-linuxapp-gcc
 
-See the *Intel® DPDK Getting Started Guide* for information on setting up the development environment.
+See the *DPDK Getting Started Guide* for information on setting up the development environment.
 
 Environment Abstraction Layer
 -----------------------------
@@ -90,7 +63,7 @@ The Environment Abstraction Layer (EAL) provides a generic interface
 that hides the environment specifics from the applications and libraries.
 The services provided by the EAL are:
 
-*   Intel® DPDK loading and launching
+*   DPDK loading and launching
 
 *   Support for multi-process and multi-thread execution types
 
@@ -112,6 +85,8 @@ The services provided by the EAL are:
 
 *   Alarm operations
 
+*   Memory management (malloc)
+
 The EAL is fully described in :ref:`Environment Abstraction Layer <Environment_Abstraction_Layer>`.
 
 Core Components
@@ -120,22 +95,12 @@ Core Components
 The *core components* are a set of libraries that provide all the elements needed
 for high-performance packet processing applications.
 
-.. _pg_figure_1:
-
-**Figure 1. Core Components Architecture**
-
-.. image2_png has been replaced
+.. _figure_architecture-overview:
 
-|architecture-overview|
+.. figure:: img/architecture-overview.*
 
-Memory Manager (librte_malloc)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   Core Components Architecture
 
-The librte_malloc library provides an API to allocate memory from the memzones created from the hugepages instead of the heap.
-This helps when allocating large numbers of items that may become susceptible to TLB misses
-when using typical 4k heap pages in the Linux user space environment.
-
-This memory allocator is fully described in :ref:`Malloc Library <Malloc_Library>`.
 
 Ring Manager (librte_ring)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -162,18 +127,18 @@ Network Packet Buffer Management (librte_mbuf)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The mbuf library provides the facility to create and destroy buffers
-that may be used by the Intel® DPDK application to store message buffers.
-The message buffers are created at startup time and stored in a mempool, using the Intel® DPDK mempool library.
+that may be used by the DPDK application to store message buffers.
+The message buffers are created at startup time and stored in a mempool, using the DPDK mempool library.
 
-This library provide an API to allocate/free mbufs, manipulate control message buffers (ctrlmbuf) which are generic message buffers,
-and packet buffers (pktmbuf) which are used to carry network packets.
+This library provides an API to allocate/free mbufs, manipulate
+packet buffers which are used to carry network packets.
 
 Network Packet Buffer Management is described in :ref:`Mbuf Library <Mbuf_Library>`.
 
 Timer Manager (librte_timer)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-This library provides a timer service to Intel® DPDK execution units,
+This library provides a timer service to DPDK execution units,
 providing the ability to execute a function asynchronously.
 It can be periodic function calls, or just a one-shot call.
 It uses the timer interface provided by the Environment Abstraction Layer (EAL)
@@ -184,7 +149,7 @@ The library documentation is available in :ref:`Timer Library <Timer_Library>`.
 Ethernet* Poll Mode Driver Architecture
 ---------------------------------------
 
-The Intel® DPDK includes Poll Mode Drivers (PMDs) for 1 GbE, 10 GbE and 40GbE, and para virtualized virtio
+The DPDK includes Poll Mode Drivers (PMDs) for 1 GbE, 10 GbE and 40GbE, and para virtualized virtio
 Ethernet controllers which are designed to work without asynchronous, interrupt-based signaling mechanisms.
 
 See  :ref:`Poll Mode Driver <Poll_Mode_Driver>`.
@@ -192,7 +157,7 @@ See  :ref:`Poll Mode Driver <Poll_Mode_Driver>`.
 Packet Forwarding Algorithm Support
 -----------------------------------
 
-The Intel® DPDK includes Hash (librte_hash) and Longest Prefix Match (LPM,librte_lpm)
+The DPDK includes Hash (librte_hash) and Longest Prefix Match (LPM,librte_lpm)
 libraries to support the corresponding packet forwarding algorithms.
 
 See :ref:`Hash Library <Hash_Library>` and  :ref:`LPM Library <LPM_Library>` for more information.
@@ -203,5 +168,3 @@ librte_net
 The librte_net library is a collection of IP protocol definitions and convenience macros.
 It is based on code from the FreeBSD* IP stack and contains protocol numbers (for use in IP headers),
 IP-related macros, IPv4/IPv6 header structures and TCP, UDP and SCTP header structures.
-
-.. |architecture-overview| image:: img/architecture-overview.svg