xref: /dpdk/doc/guides/prog_guide/index.rst (revision 4d73b6fb9907f387b6de1a8fdeecab10a51fcb23)
1fc1f2750SBernard Iremonger..  BSD LICENSE
2fc1f2750SBernard Iremonger    Copyright(c) 2010-2014 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
41fc1f2750SBernard Iremonger    ring_lib
42fc1f2750SBernard Iremonger    mempool_lib
43fc1f2750SBernard Iremonger    mbuf_lib
44fc1f2750SBernard Iremonger    poll_mode_drv
45*4d73b6fbSAdrien Mazarguil    rte_flow
460318c02bSDeclan Doherty    cryptodev_lib
47fc1f2750SBernard Iremonger    link_bonding_poll_mode_drv_lib
48fc1f2750SBernard Iremonger    timer_lib
49fc1f2750SBernard Iremonger    hash_lib
50fc1f2750SBernard Iremonger    lpm_lib
51fc1f2750SBernard Iremonger    lpm6_lib
52fc1f2750SBernard Iremonger    packet_distrib_lib
5334287c69SSergio Gonzalez Monroy    reorder_lib
54fc1f2750SBernard Iremonger    ip_fragment_reassembly_lib
55278f9454SReshma Pattan    pdump_lib
56fc1f2750SBernard Iremonger    multi_proc_support
57fc1f2750SBernard Iremonger    kernel_nic_interface
584b152471SThomas Monjalon    thread_safety_dpdk_functions
59fc1f2750SBernard Iremonger    qos_framework
60fc1f2750SBernard Iremonger    power_man
61fc1f2750SBernard Iremonger    packet_classif_access_ctrl
62fc1f2750SBernard Iremonger    packet_framework
630ee5e7fbSSiobhan Butler    vhost_lib
640cf92e62STetsuya Mukawa    port_hotplug_framework
65fc1f2750SBernard Iremonger    source_org
66fc1f2750SBernard Iremonger    dev_kit_build_system
67fc1f2750SBernard Iremonger    dev_kit_root_make_help
684b152471SThomas Monjalon    extend_dpdk
69fc1f2750SBernard Iremonger    build_app
70fc1f2750SBernard Iremonger    ext_app_lib_make_help
71fc1f2750SBernard Iremonger    perf_opt_guidelines
72fc1f2750SBernard Iremonger    writing_efficient_code
73fc1f2750SBernard Iremonger    profile_app
74fc1f2750SBernard Iremonger    glossary
75fc1f2750SBernard Iremonger
76fc1f2750SBernard Iremonger
77fc1f2750SBernard Iremonger**Figures**
78fc1f2750SBernard Iremonger
794a22e6eeSJohn McNamara:numref:`figure_architecture-overview` :ref:`figure_architecture-overview`
80fc1f2750SBernard Iremonger
814a22e6eeSJohn McNamara:numref:`figure_linuxapp_launch` :ref:`figure_linuxapp_launch`
82fc1f2750SBernard Iremonger
834a22e6eeSJohn McNamara:numref:`figure_malloc_heap` :ref:`figure_malloc_heap`
84fc1f2750SBernard Iremonger
854a22e6eeSJohn McNamara:numref:`figure_ring1` :ref:`figure_ring1`
86fc1f2750SBernard Iremonger
874a22e6eeSJohn McNamara:numref:`figure_ring-enqueue1` :ref:`figure_ring-enqueue1`
88fc1f2750SBernard Iremonger
894a22e6eeSJohn McNamara:numref:`figure_ring-enqueue2` :ref:`figure_ring-enqueue2`
90fc1f2750SBernard Iremonger
914a22e6eeSJohn McNamara:numref:`figure_ring-enqueue3` :ref:`figure_ring-enqueue3`
92fc1f2750SBernard Iremonger
934a22e6eeSJohn McNamara:numref:`figure_ring-dequeue1` :ref:`figure_ring-dequeue1`
94fc1f2750SBernard Iremonger
954a22e6eeSJohn McNamara:numref:`figure_ring-dequeue2` :ref:`figure_ring-dequeue2`
96fc1f2750SBernard Iremonger
974a22e6eeSJohn McNamara:numref:`figure_ring-dequeue3` :ref:`figure_ring-dequeue3`
98fc1f2750SBernard Iremonger
994a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue1` :ref:`figure_ring-mp-enqueue1`
100fc1f2750SBernard Iremonger
1014a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue2` :ref:`figure_ring-mp-enqueue2`
102fc1f2750SBernard Iremonger
1034a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue3` :ref:`figure_ring-mp-enqueue3`
104fc1f2750SBernard Iremonger
1054a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue4` :ref:`figure_ring-mp-enqueue4`
106fc1f2750SBernard Iremonger
1074a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue5` :ref:`figure_ring-mp-enqueue5`
108fc1f2750SBernard Iremonger
1094a22e6eeSJohn McNamara:numref:`figure_ring-modulo1` :ref:`figure_ring-modulo1`
110fc1f2750SBernard Iremonger
1114a22e6eeSJohn McNamara:numref:`figure_ring-modulo2` :ref:`figure_ring-modulo2`
112fc1f2750SBernard Iremonger
1134a22e6eeSJohn McNamara:numref:`figure_memory-management` :ref:`figure_memory-management`
114fc1f2750SBernard Iremonger
1154a22e6eeSJohn McNamara:numref:`figure_memory-management2` :ref:`figure_memory-management2`
116fc1f2750SBernard Iremonger
1174a22e6eeSJohn McNamara:numref:`figure_mempool` :ref:`figure_mempool`
118fc1f2750SBernard Iremonger
1194a22e6eeSJohn McNamara:numref:`figure_mbuf1` :ref:`figure_mbuf1`
120fc1f2750SBernard Iremonger
1214a22e6eeSJohn McNamara:numref:`figure_mbuf2` :ref:`figure_mbuf2`
122fc1f2750SBernard Iremonger
1234a22e6eeSJohn McNamara:numref:`figure_multi_process_memory` :ref:`figure_multi_process_memory`
124fc1f2750SBernard Iremonger
1254a22e6eeSJohn McNamara:numref:`figure_kernel_nic_intf` :ref:`figure_kernel_nic_intf`
126fc1f2750SBernard Iremonger
1274a22e6eeSJohn McNamara:numref:`figure_pkt_flow_kni` :ref:`figure_pkt_flow_kni`
128fc1f2750SBernard Iremonger
1294a22e6eeSJohn McNamara:numref:`figure_vhost_net_arch2` :ref:`figure_vhost_net_arch2`
130fc1f2750SBernard Iremonger
1314a22e6eeSJohn McNamara:numref:`figure_kni_traffic_flow` :ref:`figure_kni_traffic_flow`
132fc1f2750SBernard Iremonger
133fc1f2750SBernard Iremonger
1344a22e6eeSJohn McNamara:numref:`figure_pkt_proc_pipeline_qos` :ref:`figure_pkt_proc_pipeline_qos`
135fc1f2750SBernard Iremonger
1364a22e6eeSJohn McNamara:numref:`figure_hier_sched_blk` :ref:`figure_hier_sched_blk`
137fc1f2750SBernard Iremonger
1384a22e6eeSJohn McNamara:numref:`figure_sched_hier_per_port` :ref:`figure_sched_hier_per_port`
139fc1f2750SBernard Iremonger
1404a22e6eeSJohn McNamara:numref:`figure_data_struct_per_port` :ref:`figure_data_struct_per_port`
141fc1f2750SBernard Iremonger
1424a22e6eeSJohn McNamara:numref:`figure_prefetch_pipeline` :ref:`figure_prefetch_pipeline`
1434a22e6eeSJohn McNamara
1444a22e6eeSJohn McNamara:numref:`figure_pipe_prefetch_sm` :ref:`figure_pipe_prefetch_sm`
1454a22e6eeSJohn McNamara
1464a22e6eeSJohn McNamara:numref:`figure_blk_diag_dropper` :ref:`figure_blk_diag_dropper`
1474a22e6eeSJohn McNamara
1484a22e6eeSJohn McNamara:numref:`figure_flow_tru_droppper` :ref:`figure_flow_tru_droppper`
1494a22e6eeSJohn McNamara
1504a22e6eeSJohn McNamara:numref:`figure_ex_data_flow_tru_dropper` :ref:`figure_ex_data_flow_tru_dropper`
1514a22e6eeSJohn McNamara
1524a22e6eeSJohn McNamara:numref:`figure_pkt_drop_probability` :ref:`figure_pkt_drop_probability`
1534a22e6eeSJohn McNamara
1544a22e6eeSJohn McNamara:numref:`figure_drop_probability_graph` :ref:`figure_drop_probability_graph`
1554a22e6eeSJohn McNamara
1564a22e6eeSJohn McNamara:numref:`figure_figure32` :ref:`figure_figure32`
1574a22e6eeSJohn McNamara
1584a22e6eeSJohn McNamara:numref:`figure_figure33` :ref:`figure_figure33`
1594a22e6eeSJohn McNamara
1604a22e6eeSJohn McNamara:numref:`figure_figure34` :ref:`figure_figure34`
1614a22e6eeSJohn McNamara
1624a22e6eeSJohn McNamara:numref:`figure_figure35` :ref:`figure_figure35`
1634a22e6eeSJohn McNamara
1644a22e6eeSJohn McNamara:numref:`figure_figure37` :ref:`figure_figure37`
1654a22e6eeSJohn McNamara
1664a22e6eeSJohn McNamara:numref:`figure_figure38` :ref:`figure_figure38`
1674a22e6eeSJohn McNamara
1684a22e6eeSJohn McNamara:numref:`figure_figure39` :ref:`figure_figure39`
1694a22e6eeSJohn McNamara
170fc1f2750SBernard Iremonger
171fc1f2750SBernard Iremonger**Tables**
172fc1f2750SBernard Iremonger
1738c9a3374SJohn McNamara:numref:`table_qos_1` :ref:`table_qos_1`
174fc1f2750SBernard Iremonger
1758c9a3374SJohn McNamara:numref:`table_qos_2` :ref:`table_qos_2`
176fc1f2750SBernard Iremonger
1778c9a3374SJohn McNamara:numref:`table_qos_3` :ref:`table_qos_3`
178fc1f2750SBernard Iremonger
1798c9a3374SJohn McNamara:numref:`table_qos_4` :ref:`table_qos_4`
180fc1f2750SBernard Iremonger
1818c9a3374SJohn McNamara:numref:`table_qos_5` :ref:`table_qos_5`
182fc1f2750SBernard Iremonger
1838c9a3374SJohn McNamara:numref:`table_qos_6` :ref:`table_qos_6`
184fc1f2750SBernard Iremonger
1858c9a3374SJohn McNamara:numref:`table_qos_7` :ref:`table_qos_7`
186fc1f2750SBernard Iremonger
1878c9a3374SJohn McNamara:numref:`table_qos_8` :ref:`table_qos_8`
188fc1f2750SBernard Iremonger
1898c9a3374SJohn McNamara:numref:`table_qos_9` :ref:`table_qos_9`
190fc1f2750SBernard Iremonger
1918c9a3374SJohn McNamara:numref:`table_qos_10` :ref:`table_qos_10`
192fc1f2750SBernard Iremonger
1938c9a3374SJohn McNamara:numref:`table_qos_11` :ref:`table_qos_11`
194fc1f2750SBernard Iremonger
1958c9a3374SJohn McNamara:numref:`table_qos_12` :ref:`table_qos_12`
196fc1f2750SBernard Iremonger
1978c9a3374SJohn McNamara:numref:`table_qos_13` :ref:`table_qos_13`
198fc1f2750SBernard Iremonger
1998c9a3374SJohn McNamara:numref:`table_qos_14` :ref:`table_qos_14`
200fc1f2750SBernard Iremonger
2018c9a3374SJohn McNamara:numref:`table_qos_15` :ref:`table_qos_15`
202fc1f2750SBernard Iremonger
2038c9a3374SJohn McNamara:numref:`table_qos_16` :ref:`table_qos_16`
204fc1f2750SBernard Iremonger
2058c9a3374SJohn McNamara:numref:`table_qos_17` :ref:`table_qos_17`
206fc1f2750SBernard Iremonger
2078c9a3374SJohn McNamara:numref:`table_qos_18` :ref:`table_qos_18`
208fc1f2750SBernard Iremonger
2098c9a3374SJohn McNamara:numref:`table_qos_19` :ref:`table_qos_19`
210fc1f2750SBernard Iremonger
2118c9a3374SJohn McNamara:numref:`table_qos_20` :ref:`table_qos_20`
212fc1f2750SBernard Iremonger
2138c9a3374SJohn McNamara:numref:`table_qos_21` :ref:`table_qos_21`
214fc1f2750SBernard Iremonger
2158c9a3374SJohn McNamara:numref:`table_qos_22` :ref:`table_qos_22`
216fc1f2750SBernard Iremonger
2178c9a3374SJohn McNamara:numref:`table_qos_23` :ref:`table_qos_23`
218fc1f2750SBernard Iremonger
2198c9a3374SJohn McNamara:numref:`table_qos_24` :ref:`table_qos_24`
220fc1f2750SBernard Iremonger
2218c9a3374SJohn McNamara:numref:`table_qos_25` :ref:`table_qos_25`
222fc1f2750SBernard Iremonger
2238c9a3374SJohn McNamara:numref:`table_qos_26` :ref:`table_qos_26`
224fc1f2750SBernard Iremonger
2258c9a3374SJohn McNamara:numref:`table_qos_27` :ref:`table_qos_27`
226fc1f2750SBernard Iremonger
2278c9a3374SJohn McNamara:numref:`table_qos_28` :ref:`table_qos_28`
228fc1f2750SBernard Iremonger
2298c9a3374SJohn McNamara:numref:`table_qos_29` :ref:`table_qos_29`
230fc1f2750SBernard Iremonger
2318c9a3374SJohn McNamara:numref:`table_qos_30` :ref:`table_qos_30`
232fc1f2750SBernard Iremonger
2338c9a3374SJohn McNamara:numref:`table_qos_31` :ref:`table_qos_31`
234fc1f2750SBernard Iremonger
2358c9a3374SJohn McNamara:numref:`table_qos_32` :ref:`table_qos_32`
236fc1f2750SBernard Iremonger
2378c9a3374SJohn McNamara:numref:`table_qos_33` :ref:`table_qos_33`
238fc1f2750SBernard Iremonger
2398c9a3374SJohn McNamara:numref:`table_qos_34` :ref:`table_qos_34`
24027bd48ffSPablo de Lara
24127bd48ffSPablo de Lara:numref:`table_hash_lib_1` :ref:`table_hash_lib_1`
24227bd48ffSPablo de Lara
24327bd48ffSPablo de Lara:numref:`table_hash_lib_2` :ref:`table_hash_lib_2`
244