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 47e660897dSJasvinder Singh traffic_management 480318c02bSDeclan Doherty cryptodev_lib 49fc1f2750SBernard Iremonger link_bonding_poll_mode_drv_lib 50fc1f2750SBernard Iremonger timer_lib 51fc1f2750SBernard Iremonger hash_lib 520dd62a01SPablo de Lara efd_lib 53fc1f2750SBernard Iremonger lpm_lib 54fc1f2750SBernard Iremonger lpm6_lib 55fc1f2750SBernard Iremonger packet_distrib_lib 5634287c69SSergio Gonzalez Monroy reorder_lib 57fc1f2750SBernard Iremonger ip_fragment_reassembly_lib 58*2c900d09SJiayu Hu generic_receive_offload_lib 59278f9454SReshma Pattan pdump_lib 60fc1f2750SBernard Iremonger multi_proc_support 61fc1f2750SBernard Iremonger kernel_nic_interface 624b152471SThomas Monjalon thread_safety_dpdk_functions 637358c91fSHarry van Haaren eventdev 64fc1f2750SBernard Iremonger qos_framework 65fc1f2750SBernard Iremonger power_man 66fc1f2750SBernard Iremonger packet_classif_access_ctrl 67fc1f2750SBernard Iremonger packet_framework 680ee5e7fbSSiobhan Butler vhost_lib 69349950ddSRemy Horton metrics_lib 700cf92e62STetsuya Mukawa port_hotplug_framework 71fc1f2750SBernard Iremonger source_org 72fc1f2750SBernard Iremonger dev_kit_build_system 73fc1f2750SBernard Iremonger dev_kit_root_make_help 744b152471SThomas Monjalon extend_dpdk 75fc1f2750SBernard Iremonger build_app 76fc1f2750SBernard Iremonger ext_app_lib_make_help 77fc1f2750SBernard Iremonger perf_opt_guidelines 78fc1f2750SBernard Iremonger writing_efficient_code 79fc1f2750SBernard Iremonger profile_app 80fc1f2750SBernard Iremonger glossary 81fc1f2750SBernard Iremonger 82fc1f2750SBernard Iremonger 83fc1f2750SBernard Iremonger**Figures** 84fc1f2750SBernard Iremonger 854a22e6eeSJohn McNamara:numref:`figure_architecture-overview` :ref:`figure_architecture-overview` 86fc1f2750SBernard Iremonger 874a22e6eeSJohn McNamara:numref:`figure_linuxapp_launch` :ref:`figure_linuxapp_launch` 88fc1f2750SBernard Iremonger 894a22e6eeSJohn McNamara:numref:`figure_malloc_heap` :ref:`figure_malloc_heap` 90fc1f2750SBernard Iremonger 914a22e6eeSJohn McNamara:numref:`figure_ring1` :ref:`figure_ring1` 92fc1f2750SBernard Iremonger 934a22e6eeSJohn McNamara:numref:`figure_ring-enqueue1` :ref:`figure_ring-enqueue1` 94fc1f2750SBernard Iremonger 954a22e6eeSJohn McNamara:numref:`figure_ring-enqueue2` :ref:`figure_ring-enqueue2` 96fc1f2750SBernard Iremonger 974a22e6eeSJohn McNamara:numref:`figure_ring-enqueue3` :ref:`figure_ring-enqueue3` 98fc1f2750SBernard Iremonger 994a22e6eeSJohn McNamara:numref:`figure_ring-dequeue1` :ref:`figure_ring-dequeue1` 100fc1f2750SBernard Iremonger 1014a22e6eeSJohn McNamara:numref:`figure_ring-dequeue2` :ref:`figure_ring-dequeue2` 102fc1f2750SBernard Iremonger 1034a22e6eeSJohn McNamara:numref:`figure_ring-dequeue3` :ref:`figure_ring-dequeue3` 104fc1f2750SBernard Iremonger 1054a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue1` :ref:`figure_ring-mp-enqueue1` 106fc1f2750SBernard Iremonger 1074a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue2` :ref:`figure_ring-mp-enqueue2` 108fc1f2750SBernard Iremonger 1094a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue3` :ref:`figure_ring-mp-enqueue3` 110fc1f2750SBernard Iremonger 1114a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue4` :ref:`figure_ring-mp-enqueue4` 112fc1f2750SBernard Iremonger 1134a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue5` :ref:`figure_ring-mp-enqueue5` 114fc1f2750SBernard Iremonger 1154a22e6eeSJohn McNamara:numref:`figure_ring-modulo1` :ref:`figure_ring-modulo1` 116fc1f2750SBernard Iremonger 1174a22e6eeSJohn McNamara:numref:`figure_ring-modulo2` :ref:`figure_ring-modulo2` 118fc1f2750SBernard Iremonger 1194a22e6eeSJohn McNamara:numref:`figure_memory-management` :ref:`figure_memory-management` 120fc1f2750SBernard Iremonger 1214a22e6eeSJohn McNamara:numref:`figure_memory-management2` :ref:`figure_memory-management2` 122fc1f2750SBernard Iremonger 1234a22e6eeSJohn McNamara:numref:`figure_mempool` :ref:`figure_mempool` 124fc1f2750SBernard Iremonger 1254a22e6eeSJohn McNamara:numref:`figure_mbuf1` :ref:`figure_mbuf1` 126fc1f2750SBernard Iremonger 1274a22e6eeSJohn McNamara:numref:`figure_mbuf2` :ref:`figure_mbuf2` 128fc1f2750SBernard Iremonger 1294a22e6eeSJohn McNamara:numref:`figure_multi_process_memory` :ref:`figure_multi_process_memory` 130fc1f2750SBernard Iremonger 1314a22e6eeSJohn McNamara:numref:`figure_kernel_nic_intf` :ref:`figure_kernel_nic_intf` 132fc1f2750SBernard Iremonger 1334a22e6eeSJohn McNamara:numref:`figure_pkt_flow_kni` :ref:`figure_pkt_flow_kni` 134fc1f2750SBernard Iremonger 135fc1f2750SBernard Iremonger 1364a22e6eeSJohn McNamara:numref:`figure_pkt_proc_pipeline_qos` :ref:`figure_pkt_proc_pipeline_qos` 137fc1f2750SBernard Iremonger 1384a22e6eeSJohn McNamara:numref:`figure_hier_sched_blk` :ref:`figure_hier_sched_blk` 139fc1f2750SBernard Iremonger 1404a22e6eeSJohn McNamara:numref:`figure_sched_hier_per_port` :ref:`figure_sched_hier_per_port` 141fc1f2750SBernard Iremonger 1424a22e6eeSJohn McNamara:numref:`figure_data_struct_per_port` :ref:`figure_data_struct_per_port` 143fc1f2750SBernard Iremonger 1444a22e6eeSJohn McNamara:numref:`figure_prefetch_pipeline` :ref:`figure_prefetch_pipeline` 1454a22e6eeSJohn McNamara 1464a22e6eeSJohn McNamara:numref:`figure_pipe_prefetch_sm` :ref:`figure_pipe_prefetch_sm` 1474a22e6eeSJohn McNamara 1484a22e6eeSJohn McNamara:numref:`figure_blk_diag_dropper` :ref:`figure_blk_diag_dropper` 1494a22e6eeSJohn McNamara 1504a22e6eeSJohn McNamara:numref:`figure_flow_tru_droppper` :ref:`figure_flow_tru_droppper` 1514a22e6eeSJohn McNamara 1524a22e6eeSJohn McNamara:numref:`figure_ex_data_flow_tru_dropper` :ref:`figure_ex_data_flow_tru_dropper` 1534a22e6eeSJohn McNamara 1544a22e6eeSJohn McNamara:numref:`figure_pkt_drop_probability` :ref:`figure_pkt_drop_probability` 1554a22e6eeSJohn McNamara 1564a22e6eeSJohn McNamara:numref:`figure_drop_probability_graph` :ref:`figure_drop_probability_graph` 1574a22e6eeSJohn McNamara 1584a22e6eeSJohn McNamara:numref:`figure_figure32` :ref:`figure_figure32` 1594a22e6eeSJohn McNamara 1604a22e6eeSJohn McNamara:numref:`figure_figure33` :ref:`figure_figure33` 1614a22e6eeSJohn McNamara 1624a22e6eeSJohn McNamara:numref:`figure_figure34` :ref:`figure_figure34` 1634a22e6eeSJohn McNamara 1644a22e6eeSJohn McNamara:numref:`figure_figure35` :ref:`figure_figure35` 1654a22e6eeSJohn McNamara 1664a22e6eeSJohn McNamara:numref:`figure_figure37` :ref:`figure_figure37` 1674a22e6eeSJohn McNamara 1684a22e6eeSJohn McNamara:numref:`figure_figure38` :ref:`figure_figure38` 1694a22e6eeSJohn McNamara 1704a22e6eeSJohn McNamara:numref:`figure_figure39` :ref:`figure_figure39` 1714a22e6eeSJohn McNamara 1720dd62a01SPablo de Lara:numref:`figure_efd1` :ref:`figure_efd1` 1730dd62a01SPablo de Lara 1740dd62a01SPablo de Lara:numref:`figure_efd2` :ref:`figure_efd2` 1750dd62a01SPablo de Lara 1760dd62a01SPablo de Lara:numref:`figure_efd3` :ref:`figure_efd3` 1770dd62a01SPablo de Lara 1780dd62a01SPablo de Lara:numref:`figure_efd4` :ref:`figure_efd4` 1790dd62a01SPablo de Lara 1800dd62a01SPablo de Lara:numref:`figure_efd5` :ref:`figure_efd5` 1810dd62a01SPablo de Lara 1820dd62a01SPablo de Lara:numref:`figure_efd6` :ref:`figure_efd6` 1830dd62a01SPablo de Lara 1840dd62a01SPablo de Lara:numref:`figure_efd7` :ref:`figure_efd7` 1850dd62a01SPablo de Lara 1860dd62a01SPablo de Lara:numref:`figure_efd8` :ref:`figure_efd8` 1870dd62a01SPablo de Lara 1880dd62a01SPablo de Lara:numref:`figure_efd9` :ref:`figure_efd9` 1890dd62a01SPablo de Lara 1900dd62a01SPablo de Lara:numref:`figure_efd10` :ref:`figure_efd10` 1910dd62a01SPablo de Lara 1920dd62a01SPablo de Lara:numref:`figure_efd11` :ref:`figure_efd11` 1930dd62a01SPablo de Lara 194fc1f2750SBernard Iremonger 195fc1f2750SBernard Iremonger**Tables** 196fc1f2750SBernard Iremonger 1978c9a3374SJohn McNamara:numref:`table_qos_1` :ref:`table_qos_1` 198fc1f2750SBernard Iremonger 1998c9a3374SJohn McNamara:numref:`table_qos_2` :ref:`table_qos_2` 200fc1f2750SBernard Iremonger 2018c9a3374SJohn McNamara:numref:`table_qos_3` :ref:`table_qos_3` 202fc1f2750SBernard Iremonger 2038c9a3374SJohn McNamara:numref:`table_qos_4` :ref:`table_qos_4` 204fc1f2750SBernard Iremonger 2058c9a3374SJohn McNamara:numref:`table_qos_5` :ref:`table_qos_5` 206fc1f2750SBernard Iremonger 2078c9a3374SJohn McNamara:numref:`table_qos_6` :ref:`table_qos_6` 208fc1f2750SBernard Iremonger 2098c9a3374SJohn McNamara:numref:`table_qos_7` :ref:`table_qos_7` 210fc1f2750SBernard Iremonger 2118c9a3374SJohn McNamara:numref:`table_qos_8` :ref:`table_qos_8` 212fc1f2750SBernard Iremonger 2138c9a3374SJohn McNamara:numref:`table_qos_9` :ref:`table_qos_9` 214fc1f2750SBernard Iremonger 2158c9a3374SJohn McNamara:numref:`table_qos_10` :ref:`table_qos_10` 216fc1f2750SBernard Iremonger 2178c9a3374SJohn McNamara:numref:`table_qos_11` :ref:`table_qos_11` 218fc1f2750SBernard Iremonger 2198c9a3374SJohn McNamara:numref:`table_qos_12` :ref:`table_qos_12` 220fc1f2750SBernard Iremonger 2218c9a3374SJohn McNamara:numref:`table_qos_13` :ref:`table_qos_13` 222fc1f2750SBernard Iremonger 2238c9a3374SJohn McNamara:numref:`table_qos_14` :ref:`table_qos_14` 224fc1f2750SBernard Iremonger 2258c9a3374SJohn McNamara:numref:`table_qos_15` :ref:`table_qos_15` 226fc1f2750SBernard Iremonger 2278c9a3374SJohn McNamara:numref:`table_qos_16` :ref:`table_qos_16` 228fc1f2750SBernard Iremonger 2298c9a3374SJohn McNamara:numref:`table_qos_17` :ref:`table_qos_17` 230fc1f2750SBernard Iremonger 2318c9a3374SJohn McNamara:numref:`table_qos_18` :ref:`table_qos_18` 232fc1f2750SBernard Iremonger 2338c9a3374SJohn McNamara:numref:`table_qos_19` :ref:`table_qos_19` 234fc1f2750SBernard Iremonger 2358c9a3374SJohn McNamara:numref:`table_qos_20` :ref:`table_qos_20` 236fc1f2750SBernard Iremonger 2378c9a3374SJohn McNamara:numref:`table_qos_21` :ref:`table_qos_21` 238fc1f2750SBernard Iremonger 2398c9a3374SJohn McNamara:numref:`table_qos_22` :ref:`table_qos_22` 240fc1f2750SBernard Iremonger 2418c9a3374SJohn McNamara:numref:`table_qos_23` :ref:`table_qos_23` 242fc1f2750SBernard Iremonger 2438c9a3374SJohn McNamara:numref:`table_qos_24` :ref:`table_qos_24` 244fc1f2750SBernard Iremonger 2458c9a3374SJohn McNamara:numref:`table_qos_25` :ref:`table_qos_25` 246fc1f2750SBernard Iremonger 2478c9a3374SJohn McNamara:numref:`table_qos_26` :ref:`table_qos_26` 248fc1f2750SBernard Iremonger 2498c9a3374SJohn McNamara:numref:`table_qos_27` :ref:`table_qos_27` 250fc1f2750SBernard Iremonger 2518c9a3374SJohn McNamara:numref:`table_qos_28` :ref:`table_qos_28` 252fc1f2750SBernard Iremonger 2538c9a3374SJohn McNamara:numref:`table_qos_29` :ref:`table_qos_29` 254fc1f2750SBernard Iremonger 2558c9a3374SJohn McNamara:numref:`table_qos_30` :ref:`table_qos_30` 256fc1f2750SBernard Iremonger 2578c9a3374SJohn McNamara:numref:`table_qos_31` :ref:`table_qos_31` 258fc1f2750SBernard Iremonger 2598c9a3374SJohn McNamara:numref:`table_qos_32` :ref:`table_qos_32` 260fc1f2750SBernard Iremonger 2618c9a3374SJohn McNamara:numref:`table_qos_33` :ref:`table_qos_33` 262fc1f2750SBernard Iremonger 2638c9a3374SJohn McNamara:numref:`table_qos_34` :ref:`table_qos_34` 26427bd48ffSPablo de Lara 26527bd48ffSPablo de Lara:numref:`table_hash_lib_1` :ref:`table_hash_lib_1` 26627bd48ffSPablo de Lara 26727bd48ffSPablo de Lara:numref:`table_hash_lib_2` :ref:`table_hash_lib_2` 268