xref: /dpdk/doc/guides/prog_guide/index.rst (revision 5bf4bebb093bf59f90d29f4ed83a4703682d7f14)
1fc1f2750SBernard Iremonger..  BSD LICENSE
2349950ddSRemy Horton    Copyright(c) 2010-2017 Intel Corporation. All rights reserved.
3fc1f2750SBernard Iremonger    All rights reserved.
4fc1f2750SBernard Iremonger
5fc1f2750SBernard Iremonger    Redistribution and use in source and binary forms, with or without
6fc1f2750SBernard Iremonger    modification, are permitted provided that the following conditions
7fc1f2750SBernard Iremonger    are met:
8fc1f2750SBernard Iremonger
9fc1f2750SBernard Iremonger    * Redistributions of source code must retain the above copyright
10fc1f2750SBernard Iremonger    notice, this list of conditions and the following disclaimer.
11fc1f2750SBernard Iremonger    * Redistributions in binary form must reproduce the above copyright
12fc1f2750SBernard Iremonger    notice, this list of conditions and the following disclaimer in
13fc1f2750SBernard Iremonger    the documentation and/or other materials provided with the
14fc1f2750SBernard Iremonger    distribution.
15fc1f2750SBernard Iremonger    * Neither the name of Intel Corporation nor the names of its
16fc1f2750SBernard Iremonger    contributors may be used to endorse or promote products derived
17fc1f2750SBernard Iremonger    from this software without specific prior written permission.
18fc1f2750SBernard Iremonger
19fc1f2750SBernard Iremonger    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20fc1f2750SBernard Iremonger    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21fc1f2750SBernard Iremonger    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22fc1f2750SBernard Iremonger    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23fc1f2750SBernard Iremonger    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24fc1f2750SBernard Iremonger    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25fc1f2750SBernard Iremonger    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26fc1f2750SBernard Iremonger    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27fc1f2750SBernard Iremonger    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28fc1f2750SBernard Iremonger    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29fc1f2750SBernard Iremonger    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30fc1f2750SBernard Iremonger
31fc1f2750SBernard IremongerProgrammer's Guide
32fc1f2750SBernard Iremonger==================
33fc1f2750SBernard Iremonger
34fc1f2750SBernard Iremonger.. toctree::
35fc1f2750SBernard Iremonger    :maxdepth: 3
36fc1f2750SBernard Iremonger    :numbered:
37fc1f2750SBernard Iremonger
38fc1f2750SBernard Iremonger    intro
39fc1f2750SBernard Iremonger    overview
40fc1f2750SBernard Iremonger    env_abstraction_layer
4121698354SHarry van Haaren    service_cores
42fc1f2750SBernard Iremonger    ring_lib
43fc1f2750SBernard Iremonger    mempool_lib
44fc1f2750SBernard Iremonger    mbuf_lib
45fc1f2750SBernard Iremonger    poll_mode_drv
464d73b6fbSAdrien Mazarguil    rte_flow
47*5bf4bebbSCristian Dumitrescu    traffic_metering_and_policing
48e660897dSJasvinder Singh    traffic_management
490318c02bSDeclan Doherty    cryptodev_lib
50fc1f2750SBernard Iremonger    link_bonding_poll_mode_drv_lib
51fc1f2750SBernard Iremonger    timer_lib
52fc1f2750SBernard Iremonger    hash_lib
530dd62a01SPablo de Lara    efd_lib
5455694b2aSYipeng Wang    member_lib
55fc1f2750SBernard Iremonger    lpm_lib
56fc1f2750SBernard Iremonger    lpm6_lib
57fc1f2750SBernard Iremonger    packet_distrib_lib
5834287c69SSergio Gonzalez Monroy    reorder_lib
59fc1f2750SBernard Iremonger    ip_fragment_reassembly_lib
602c900d09SJiayu Hu    generic_receive_offload_lib
61f6010c76SMark Kavanagh    generic_segmentation_offload_lib
62278f9454SReshma Pattan    pdump_lib
63fc1f2750SBernard Iremonger    multi_proc_support
64fc1f2750SBernard Iremonger    kernel_nic_interface
654b152471SThomas Monjalon    thread_safety_dpdk_functions
667358c91fSHarry van Haaren    eventdev
67fc1f2750SBernard Iremonger    qos_framework
68fc1f2750SBernard Iremonger    power_man
69fc1f2750SBernard Iremonger    packet_classif_access_ctrl
70fc1f2750SBernard Iremonger    packet_framework
710ee5e7fbSSiobhan Butler    vhost_lib
72349950ddSRemy Horton    metrics_lib
730cf92e62STetsuya Mukawa    port_hotplug_framework
74fc1f2750SBernard Iremonger    source_org
75fc1f2750SBernard Iremonger    dev_kit_build_system
76fc1f2750SBernard Iremonger    dev_kit_root_make_help
774b152471SThomas Monjalon    extend_dpdk
78fc1f2750SBernard Iremonger    build_app
79fc1f2750SBernard Iremonger    ext_app_lib_make_help
80fc1f2750SBernard Iremonger    perf_opt_guidelines
81fc1f2750SBernard Iremonger    writing_efficient_code
82fc1f2750SBernard Iremonger    profile_app
83fc1f2750SBernard Iremonger    glossary
84fc1f2750SBernard Iremonger
85fc1f2750SBernard Iremonger
86fc1f2750SBernard Iremonger**Figures**
87fc1f2750SBernard Iremonger
884a22e6eeSJohn McNamara:numref:`figure_architecture-overview` :ref:`figure_architecture-overview`
89fc1f2750SBernard Iremonger
904a22e6eeSJohn McNamara:numref:`figure_linuxapp_launch` :ref:`figure_linuxapp_launch`
91fc1f2750SBernard Iremonger
924a22e6eeSJohn McNamara:numref:`figure_malloc_heap` :ref:`figure_malloc_heap`
93fc1f2750SBernard Iremonger
944a22e6eeSJohn McNamara:numref:`figure_ring1` :ref:`figure_ring1`
95fc1f2750SBernard Iremonger
964a22e6eeSJohn McNamara:numref:`figure_ring-enqueue1` :ref:`figure_ring-enqueue1`
97fc1f2750SBernard Iremonger
984a22e6eeSJohn McNamara:numref:`figure_ring-enqueue2` :ref:`figure_ring-enqueue2`
99fc1f2750SBernard Iremonger
1004a22e6eeSJohn McNamara:numref:`figure_ring-enqueue3` :ref:`figure_ring-enqueue3`
101fc1f2750SBernard Iremonger
1024a22e6eeSJohn McNamara:numref:`figure_ring-dequeue1` :ref:`figure_ring-dequeue1`
103fc1f2750SBernard Iremonger
1044a22e6eeSJohn McNamara:numref:`figure_ring-dequeue2` :ref:`figure_ring-dequeue2`
105fc1f2750SBernard Iremonger
1064a22e6eeSJohn McNamara:numref:`figure_ring-dequeue3` :ref:`figure_ring-dequeue3`
107fc1f2750SBernard Iremonger
1084a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue1` :ref:`figure_ring-mp-enqueue1`
109fc1f2750SBernard Iremonger
1104a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue2` :ref:`figure_ring-mp-enqueue2`
111fc1f2750SBernard Iremonger
1124a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue3` :ref:`figure_ring-mp-enqueue3`
113fc1f2750SBernard Iremonger
1144a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue4` :ref:`figure_ring-mp-enqueue4`
115fc1f2750SBernard Iremonger
1164a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue5` :ref:`figure_ring-mp-enqueue5`
117fc1f2750SBernard Iremonger
1184a22e6eeSJohn McNamara:numref:`figure_ring-modulo1` :ref:`figure_ring-modulo1`
119fc1f2750SBernard Iremonger
1204a22e6eeSJohn McNamara:numref:`figure_ring-modulo2` :ref:`figure_ring-modulo2`
121fc1f2750SBernard Iremonger
1224a22e6eeSJohn McNamara:numref:`figure_memory-management` :ref:`figure_memory-management`
123fc1f2750SBernard Iremonger
1244a22e6eeSJohn McNamara:numref:`figure_memory-management2` :ref:`figure_memory-management2`
125fc1f2750SBernard Iremonger
1264a22e6eeSJohn McNamara:numref:`figure_mempool` :ref:`figure_mempool`
127fc1f2750SBernard Iremonger
1284a22e6eeSJohn McNamara:numref:`figure_mbuf1` :ref:`figure_mbuf1`
129fc1f2750SBernard Iremonger
1304a22e6eeSJohn McNamara:numref:`figure_mbuf2` :ref:`figure_mbuf2`
131fc1f2750SBernard Iremonger
1324a22e6eeSJohn McNamara:numref:`figure_multi_process_memory` :ref:`figure_multi_process_memory`
133fc1f2750SBernard Iremonger
1344a22e6eeSJohn McNamara:numref:`figure_kernel_nic_intf` :ref:`figure_kernel_nic_intf`
135fc1f2750SBernard Iremonger
1364a22e6eeSJohn McNamara:numref:`figure_pkt_flow_kni` :ref:`figure_pkt_flow_kni`
137fc1f2750SBernard Iremonger
138fc1f2750SBernard Iremonger
1394a22e6eeSJohn McNamara:numref:`figure_pkt_proc_pipeline_qos` :ref:`figure_pkt_proc_pipeline_qos`
140fc1f2750SBernard Iremonger
1414a22e6eeSJohn McNamara:numref:`figure_hier_sched_blk` :ref:`figure_hier_sched_blk`
142fc1f2750SBernard Iremonger
1434a22e6eeSJohn McNamara:numref:`figure_sched_hier_per_port` :ref:`figure_sched_hier_per_port`
144fc1f2750SBernard Iremonger
1454a22e6eeSJohn McNamara:numref:`figure_data_struct_per_port` :ref:`figure_data_struct_per_port`
146fc1f2750SBernard Iremonger
1474a22e6eeSJohn McNamara:numref:`figure_prefetch_pipeline` :ref:`figure_prefetch_pipeline`
1484a22e6eeSJohn McNamara
1494a22e6eeSJohn McNamara:numref:`figure_pipe_prefetch_sm` :ref:`figure_pipe_prefetch_sm`
1504a22e6eeSJohn McNamara
1514a22e6eeSJohn McNamara:numref:`figure_blk_diag_dropper` :ref:`figure_blk_diag_dropper`
1524a22e6eeSJohn McNamara
1534a22e6eeSJohn McNamara:numref:`figure_flow_tru_droppper` :ref:`figure_flow_tru_droppper`
1544a22e6eeSJohn McNamara
1554a22e6eeSJohn McNamara:numref:`figure_ex_data_flow_tru_dropper` :ref:`figure_ex_data_flow_tru_dropper`
1564a22e6eeSJohn McNamara
1574a22e6eeSJohn McNamara:numref:`figure_pkt_drop_probability` :ref:`figure_pkt_drop_probability`
1584a22e6eeSJohn McNamara
1594a22e6eeSJohn McNamara:numref:`figure_drop_probability_graph` :ref:`figure_drop_probability_graph`
1604a22e6eeSJohn McNamara
1614a22e6eeSJohn McNamara:numref:`figure_figure32` :ref:`figure_figure32`
1624a22e6eeSJohn McNamara
1634a22e6eeSJohn McNamara:numref:`figure_figure33` :ref:`figure_figure33`
1644a22e6eeSJohn McNamara
1654a22e6eeSJohn McNamara:numref:`figure_figure34` :ref:`figure_figure34`
1664a22e6eeSJohn McNamara
1674a22e6eeSJohn McNamara:numref:`figure_figure35` :ref:`figure_figure35`
1684a22e6eeSJohn McNamara
1694a22e6eeSJohn McNamara:numref:`figure_figure37` :ref:`figure_figure37`
1704a22e6eeSJohn McNamara
1714a22e6eeSJohn McNamara:numref:`figure_figure38` :ref:`figure_figure38`
1724a22e6eeSJohn McNamara
1734a22e6eeSJohn McNamara:numref:`figure_figure39` :ref:`figure_figure39`
1744a22e6eeSJohn McNamara
1750dd62a01SPablo de Lara:numref:`figure_efd1` :ref:`figure_efd1`
1760dd62a01SPablo de Lara
1770dd62a01SPablo de Lara:numref:`figure_efd2` :ref:`figure_efd2`
1780dd62a01SPablo de Lara
1790dd62a01SPablo de Lara:numref:`figure_efd3` :ref:`figure_efd3`
1800dd62a01SPablo de Lara
1810dd62a01SPablo de Lara:numref:`figure_efd4` :ref:`figure_efd4`
1820dd62a01SPablo de Lara
1830dd62a01SPablo de Lara:numref:`figure_efd5` :ref:`figure_efd5`
1840dd62a01SPablo de Lara
1850dd62a01SPablo de Lara:numref:`figure_efd6` :ref:`figure_efd6`
1860dd62a01SPablo de Lara
1870dd62a01SPablo de Lara:numref:`figure_efd7` :ref:`figure_efd7`
1880dd62a01SPablo de Lara
1890dd62a01SPablo de Lara:numref:`figure_efd8` :ref:`figure_efd8`
1900dd62a01SPablo de Lara
1910dd62a01SPablo de Lara:numref:`figure_efd9` :ref:`figure_efd9`
1920dd62a01SPablo de Lara
1930dd62a01SPablo de Lara:numref:`figure_efd10` :ref:`figure_efd10`
1940dd62a01SPablo de Lara
1950dd62a01SPablo de Lara:numref:`figure_efd11` :ref:`figure_efd11`
1960dd62a01SPablo de Lara
19755694b2aSYipeng Wang:numref:`figure_membership1` :ref:`figure_membership1`
19855694b2aSYipeng Wang
19955694b2aSYipeng Wang:numref:`figure_membership2` :ref:`figure_membership2`
20055694b2aSYipeng Wang
20155694b2aSYipeng Wang:numref:`figure_membership3` :ref:`figure_membership3`
20255694b2aSYipeng Wang
20355694b2aSYipeng Wang:numref:`figure_membership4` :ref:`figure_membership4`
20455694b2aSYipeng Wang
20555694b2aSYipeng Wang:numref:`figure_membership5` :ref:`figure_membership5`
20655694b2aSYipeng Wang
20755694b2aSYipeng Wang:numref:`figure_membership6` :ref:`figure_membership6`
20855694b2aSYipeng Wang
20955694b2aSYipeng Wang:numref:`figure_membership7` :ref:`figure_membership7`
210fc1f2750SBernard Iremonger
211fc1f2750SBernard Iremonger**Tables**
212fc1f2750SBernard Iremonger
2138c9a3374SJohn McNamara:numref:`table_qos_1` :ref:`table_qos_1`
214fc1f2750SBernard Iremonger
2158c9a3374SJohn McNamara:numref:`table_qos_2` :ref:`table_qos_2`
216fc1f2750SBernard Iremonger
2178c9a3374SJohn McNamara:numref:`table_qos_3` :ref:`table_qos_3`
218fc1f2750SBernard Iremonger
2198c9a3374SJohn McNamara:numref:`table_qos_4` :ref:`table_qos_4`
220fc1f2750SBernard Iremonger
2218c9a3374SJohn McNamara:numref:`table_qos_5` :ref:`table_qos_5`
222fc1f2750SBernard Iremonger
2238c9a3374SJohn McNamara:numref:`table_qos_6` :ref:`table_qos_6`
224fc1f2750SBernard Iremonger
2258c9a3374SJohn McNamara:numref:`table_qos_7` :ref:`table_qos_7`
226fc1f2750SBernard Iremonger
2278c9a3374SJohn McNamara:numref:`table_qos_8` :ref:`table_qos_8`
228fc1f2750SBernard Iremonger
2298c9a3374SJohn McNamara:numref:`table_qos_9` :ref:`table_qos_9`
230fc1f2750SBernard Iremonger
2318c9a3374SJohn McNamara:numref:`table_qos_10` :ref:`table_qos_10`
232fc1f2750SBernard Iremonger
2338c9a3374SJohn McNamara:numref:`table_qos_11` :ref:`table_qos_11`
234fc1f2750SBernard Iremonger
2358c9a3374SJohn McNamara:numref:`table_qos_12` :ref:`table_qos_12`
236fc1f2750SBernard Iremonger
2378c9a3374SJohn McNamara:numref:`table_qos_13` :ref:`table_qos_13`
238fc1f2750SBernard Iremonger
2398c9a3374SJohn McNamara:numref:`table_qos_14` :ref:`table_qos_14`
240fc1f2750SBernard Iremonger
2418c9a3374SJohn McNamara:numref:`table_qos_15` :ref:`table_qos_15`
242fc1f2750SBernard Iremonger
2438c9a3374SJohn McNamara:numref:`table_qos_16` :ref:`table_qos_16`
244fc1f2750SBernard Iremonger
2458c9a3374SJohn McNamara:numref:`table_qos_17` :ref:`table_qos_17`
246fc1f2750SBernard Iremonger
2478c9a3374SJohn McNamara:numref:`table_qos_18` :ref:`table_qos_18`
248fc1f2750SBernard Iremonger
2498c9a3374SJohn McNamara:numref:`table_qos_19` :ref:`table_qos_19`
250fc1f2750SBernard Iremonger
2518c9a3374SJohn McNamara:numref:`table_qos_20` :ref:`table_qos_20`
252fc1f2750SBernard Iremonger
2538c9a3374SJohn McNamara:numref:`table_qos_21` :ref:`table_qos_21`
254fc1f2750SBernard Iremonger
2558c9a3374SJohn McNamara:numref:`table_qos_22` :ref:`table_qos_22`
256fc1f2750SBernard Iremonger
2578c9a3374SJohn McNamara:numref:`table_qos_23` :ref:`table_qos_23`
258fc1f2750SBernard Iremonger
2598c9a3374SJohn McNamara:numref:`table_qos_24` :ref:`table_qos_24`
260fc1f2750SBernard Iremonger
2618c9a3374SJohn McNamara:numref:`table_qos_25` :ref:`table_qos_25`
262fc1f2750SBernard Iremonger
2638c9a3374SJohn McNamara:numref:`table_qos_26` :ref:`table_qos_26`
264fc1f2750SBernard Iremonger
2658c9a3374SJohn McNamara:numref:`table_qos_27` :ref:`table_qos_27`
266fc1f2750SBernard Iremonger
2678c9a3374SJohn McNamara:numref:`table_qos_28` :ref:`table_qos_28`
268fc1f2750SBernard Iremonger
2698c9a3374SJohn McNamara:numref:`table_qos_29` :ref:`table_qos_29`
270fc1f2750SBernard Iremonger
2718c9a3374SJohn McNamara:numref:`table_qos_30` :ref:`table_qos_30`
272fc1f2750SBernard Iremonger
2738c9a3374SJohn McNamara:numref:`table_qos_31` :ref:`table_qos_31`
274fc1f2750SBernard Iremonger
2758c9a3374SJohn McNamara:numref:`table_qos_32` :ref:`table_qos_32`
276fc1f2750SBernard Iremonger
2778c9a3374SJohn McNamara:numref:`table_qos_33` :ref:`table_qos_33`
278fc1f2750SBernard Iremonger
2798c9a3374SJohn McNamara:numref:`table_qos_34` :ref:`table_qos_34`
28027bd48ffSPablo de Lara
28127bd48ffSPablo de Lara:numref:`table_hash_lib_1` :ref:`table_hash_lib_1`
28227bd48ffSPablo de Lara
28327bd48ffSPablo de Lara:numref:`table_hash_lib_2` :ref:`table_hash_lib_2`
284