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 454d73b6fbSAdrien Mazarguil rte_flow 460318c02bSDeclan Doherty cryptodev_lib 47fc1f2750SBernard Iremonger link_bonding_poll_mode_drv_lib 48fc1f2750SBernard Iremonger timer_lib 49fc1f2750SBernard Iremonger hash_lib 50*0dd62a01SPablo de Lara efd_lib 51fc1f2750SBernard Iremonger lpm_lib 52fc1f2750SBernard Iremonger lpm6_lib 53fc1f2750SBernard Iremonger packet_distrib_lib 5434287c69SSergio Gonzalez Monroy reorder_lib 55fc1f2750SBernard Iremonger ip_fragment_reassembly_lib 56278f9454SReshma Pattan pdump_lib 57fc1f2750SBernard Iremonger multi_proc_support 58fc1f2750SBernard Iremonger kernel_nic_interface 594b152471SThomas Monjalon thread_safety_dpdk_functions 60fc1f2750SBernard Iremonger qos_framework 61fc1f2750SBernard Iremonger power_man 62fc1f2750SBernard Iremonger packet_classif_access_ctrl 63fc1f2750SBernard Iremonger packet_framework 640ee5e7fbSSiobhan Butler vhost_lib 650cf92e62STetsuya Mukawa port_hotplug_framework 66fc1f2750SBernard Iremonger source_org 67fc1f2750SBernard Iremonger dev_kit_build_system 68fc1f2750SBernard Iremonger dev_kit_root_make_help 694b152471SThomas Monjalon extend_dpdk 70fc1f2750SBernard Iremonger build_app 71fc1f2750SBernard Iremonger ext_app_lib_make_help 72fc1f2750SBernard Iremonger perf_opt_guidelines 73fc1f2750SBernard Iremonger writing_efficient_code 74fc1f2750SBernard Iremonger profile_app 75fc1f2750SBernard Iremonger glossary 76fc1f2750SBernard Iremonger 77fc1f2750SBernard Iremonger 78fc1f2750SBernard Iremonger**Figures** 79fc1f2750SBernard Iremonger 804a22e6eeSJohn McNamara:numref:`figure_architecture-overview` :ref:`figure_architecture-overview` 81fc1f2750SBernard Iremonger 824a22e6eeSJohn McNamara:numref:`figure_linuxapp_launch` :ref:`figure_linuxapp_launch` 83fc1f2750SBernard Iremonger 844a22e6eeSJohn McNamara:numref:`figure_malloc_heap` :ref:`figure_malloc_heap` 85fc1f2750SBernard Iremonger 864a22e6eeSJohn McNamara:numref:`figure_ring1` :ref:`figure_ring1` 87fc1f2750SBernard Iremonger 884a22e6eeSJohn McNamara:numref:`figure_ring-enqueue1` :ref:`figure_ring-enqueue1` 89fc1f2750SBernard Iremonger 904a22e6eeSJohn McNamara:numref:`figure_ring-enqueue2` :ref:`figure_ring-enqueue2` 91fc1f2750SBernard Iremonger 924a22e6eeSJohn McNamara:numref:`figure_ring-enqueue3` :ref:`figure_ring-enqueue3` 93fc1f2750SBernard Iremonger 944a22e6eeSJohn McNamara:numref:`figure_ring-dequeue1` :ref:`figure_ring-dequeue1` 95fc1f2750SBernard Iremonger 964a22e6eeSJohn McNamara:numref:`figure_ring-dequeue2` :ref:`figure_ring-dequeue2` 97fc1f2750SBernard Iremonger 984a22e6eeSJohn McNamara:numref:`figure_ring-dequeue3` :ref:`figure_ring-dequeue3` 99fc1f2750SBernard Iremonger 1004a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue1` :ref:`figure_ring-mp-enqueue1` 101fc1f2750SBernard Iremonger 1024a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue2` :ref:`figure_ring-mp-enqueue2` 103fc1f2750SBernard Iremonger 1044a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue3` :ref:`figure_ring-mp-enqueue3` 105fc1f2750SBernard Iremonger 1064a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue4` :ref:`figure_ring-mp-enqueue4` 107fc1f2750SBernard Iremonger 1084a22e6eeSJohn McNamara:numref:`figure_ring-mp-enqueue5` :ref:`figure_ring-mp-enqueue5` 109fc1f2750SBernard Iremonger 1104a22e6eeSJohn McNamara:numref:`figure_ring-modulo1` :ref:`figure_ring-modulo1` 111fc1f2750SBernard Iremonger 1124a22e6eeSJohn McNamara:numref:`figure_ring-modulo2` :ref:`figure_ring-modulo2` 113fc1f2750SBernard Iremonger 1144a22e6eeSJohn McNamara:numref:`figure_memory-management` :ref:`figure_memory-management` 115fc1f2750SBernard Iremonger 1164a22e6eeSJohn McNamara:numref:`figure_memory-management2` :ref:`figure_memory-management2` 117fc1f2750SBernard Iremonger 1184a22e6eeSJohn McNamara:numref:`figure_mempool` :ref:`figure_mempool` 119fc1f2750SBernard Iremonger 1204a22e6eeSJohn McNamara:numref:`figure_mbuf1` :ref:`figure_mbuf1` 121fc1f2750SBernard Iremonger 1224a22e6eeSJohn McNamara:numref:`figure_mbuf2` :ref:`figure_mbuf2` 123fc1f2750SBernard Iremonger 1244a22e6eeSJohn McNamara:numref:`figure_multi_process_memory` :ref:`figure_multi_process_memory` 125fc1f2750SBernard Iremonger 1264a22e6eeSJohn McNamara:numref:`figure_kernel_nic_intf` :ref:`figure_kernel_nic_intf` 127fc1f2750SBernard Iremonger 1284a22e6eeSJohn McNamara:numref:`figure_pkt_flow_kni` :ref:`figure_pkt_flow_kni` 129fc1f2750SBernard Iremonger 1304a22e6eeSJohn McNamara:numref:`figure_vhost_net_arch2` :ref:`figure_vhost_net_arch2` 131fc1f2750SBernard Iremonger 1324a22e6eeSJohn McNamara:numref:`figure_kni_traffic_flow` :ref:`figure_kni_traffic_flow` 133fc1f2750SBernard Iremonger 134fc1f2750SBernard Iremonger 1354a22e6eeSJohn McNamara:numref:`figure_pkt_proc_pipeline_qos` :ref:`figure_pkt_proc_pipeline_qos` 136fc1f2750SBernard Iremonger 1374a22e6eeSJohn McNamara:numref:`figure_hier_sched_blk` :ref:`figure_hier_sched_blk` 138fc1f2750SBernard Iremonger 1394a22e6eeSJohn McNamara:numref:`figure_sched_hier_per_port` :ref:`figure_sched_hier_per_port` 140fc1f2750SBernard Iremonger 1414a22e6eeSJohn McNamara:numref:`figure_data_struct_per_port` :ref:`figure_data_struct_per_port` 142fc1f2750SBernard Iremonger 1434a22e6eeSJohn McNamara:numref:`figure_prefetch_pipeline` :ref:`figure_prefetch_pipeline` 1444a22e6eeSJohn McNamara 1454a22e6eeSJohn McNamara:numref:`figure_pipe_prefetch_sm` :ref:`figure_pipe_prefetch_sm` 1464a22e6eeSJohn McNamara 1474a22e6eeSJohn McNamara:numref:`figure_blk_diag_dropper` :ref:`figure_blk_diag_dropper` 1484a22e6eeSJohn McNamara 1494a22e6eeSJohn McNamara:numref:`figure_flow_tru_droppper` :ref:`figure_flow_tru_droppper` 1504a22e6eeSJohn McNamara 1514a22e6eeSJohn McNamara:numref:`figure_ex_data_flow_tru_dropper` :ref:`figure_ex_data_flow_tru_dropper` 1524a22e6eeSJohn McNamara 1534a22e6eeSJohn McNamara:numref:`figure_pkt_drop_probability` :ref:`figure_pkt_drop_probability` 1544a22e6eeSJohn McNamara 1554a22e6eeSJohn McNamara:numref:`figure_drop_probability_graph` :ref:`figure_drop_probability_graph` 1564a22e6eeSJohn McNamara 1574a22e6eeSJohn McNamara:numref:`figure_figure32` :ref:`figure_figure32` 1584a22e6eeSJohn McNamara 1594a22e6eeSJohn McNamara:numref:`figure_figure33` :ref:`figure_figure33` 1604a22e6eeSJohn McNamara 1614a22e6eeSJohn McNamara:numref:`figure_figure34` :ref:`figure_figure34` 1624a22e6eeSJohn McNamara 1634a22e6eeSJohn McNamara:numref:`figure_figure35` :ref:`figure_figure35` 1644a22e6eeSJohn McNamara 1654a22e6eeSJohn McNamara:numref:`figure_figure37` :ref:`figure_figure37` 1664a22e6eeSJohn McNamara 1674a22e6eeSJohn McNamara:numref:`figure_figure38` :ref:`figure_figure38` 1684a22e6eeSJohn McNamara 1694a22e6eeSJohn McNamara:numref:`figure_figure39` :ref:`figure_figure39` 1704a22e6eeSJohn McNamara 171*0dd62a01SPablo de Lara:numref:`figure_efd1` :ref:`figure_efd1` 172*0dd62a01SPablo de Lara 173*0dd62a01SPablo de Lara:numref:`figure_efd2` :ref:`figure_efd2` 174*0dd62a01SPablo de Lara 175*0dd62a01SPablo de Lara:numref:`figure_efd3` :ref:`figure_efd3` 176*0dd62a01SPablo de Lara 177*0dd62a01SPablo de Lara:numref:`figure_efd4` :ref:`figure_efd4` 178*0dd62a01SPablo de Lara 179*0dd62a01SPablo de Lara:numref:`figure_efd5` :ref:`figure_efd5` 180*0dd62a01SPablo de Lara 181*0dd62a01SPablo de Lara:numref:`figure_efd6` :ref:`figure_efd6` 182*0dd62a01SPablo de Lara 183*0dd62a01SPablo de Lara:numref:`figure_efd7` :ref:`figure_efd7` 184*0dd62a01SPablo de Lara 185*0dd62a01SPablo de Lara:numref:`figure_efd8` :ref:`figure_efd8` 186*0dd62a01SPablo de Lara 187*0dd62a01SPablo de Lara:numref:`figure_efd9` :ref:`figure_efd9` 188*0dd62a01SPablo de Lara 189*0dd62a01SPablo de Lara:numref:`figure_efd10` :ref:`figure_efd10` 190*0dd62a01SPablo de Lara 191*0dd62a01SPablo de Lara:numref:`figure_efd11` :ref:`figure_efd11` 192*0dd62a01SPablo de Lara 193fc1f2750SBernard Iremonger 194fc1f2750SBernard Iremonger**Tables** 195fc1f2750SBernard Iremonger 1968c9a3374SJohn McNamara:numref:`table_qos_1` :ref:`table_qos_1` 197fc1f2750SBernard Iremonger 1988c9a3374SJohn McNamara:numref:`table_qos_2` :ref:`table_qos_2` 199fc1f2750SBernard Iremonger 2008c9a3374SJohn McNamara:numref:`table_qos_3` :ref:`table_qos_3` 201fc1f2750SBernard Iremonger 2028c9a3374SJohn McNamara:numref:`table_qos_4` :ref:`table_qos_4` 203fc1f2750SBernard Iremonger 2048c9a3374SJohn McNamara:numref:`table_qos_5` :ref:`table_qos_5` 205fc1f2750SBernard Iremonger 2068c9a3374SJohn McNamara:numref:`table_qos_6` :ref:`table_qos_6` 207fc1f2750SBernard Iremonger 2088c9a3374SJohn McNamara:numref:`table_qos_7` :ref:`table_qos_7` 209fc1f2750SBernard Iremonger 2108c9a3374SJohn McNamara:numref:`table_qos_8` :ref:`table_qos_8` 211fc1f2750SBernard Iremonger 2128c9a3374SJohn McNamara:numref:`table_qos_9` :ref:`table_qos_9` 213fc1f2750SBernard Iremonger 2148c9a3374SJohn McNamara:numref:`table_qos_10` :ref:`table_qos_10` 215fc1f2750SBernard Iremonger 2168c9a3374SJohn McNamara:numref:`table_qos_11` :ref:`table_qos_11` 217fc1f2750SBernard Iremonger 2188c9a3374SJohn McNamara:numref:`table_qos_12` :ref:`table_qos_12` 219fc1f2750SBernard Iremonger 2208c9a3374SJohn McNamara:numref:`table_qos_13` :ref:`table_qos_13` 221fc1f2750SBernard Iremonger 2228c9a3374SJohn McNamara:numref:`table_qos_14` :ref:`table_qos_14` 223fc1f2750SBernard Iremonger 2248c9a3374SJohn McNamara:numref:`table_qos_15` :ref:`table_qos_15` 225fc1f2750SBernard Iremonger 2268c9a3374SJohn McNamara:numref:`table_qos_16` :ref:`table_qos_16` 227fc1f2750SBernard Iremonger 2288c9a3374SJohn McNamara:numref:`table_qos_17` :ref:`table_qos_17` 229fc1f2750SBernard Iremonger 2308c9a3374SJohn McNamara:numref:`table_qos_18` :ref:`table_qos_18` 231fc1f2750SBernard Iremonger 2328c9a3374SJohn McNamara:numref:`table_qos_19` :ref:`table_qos_19` 233fc1f2750SBernard Iremonger 2348c9a3374SJohn McNamara:numref:`table_qos_20` :ref:`table_qos_20` 235fc1f2750SBernard Iremonger 2368c9a3374SJohn McNamara:numref:`table_qos_21` :ref:`table_qos_21` 237fc1f2750SBernard Iremonger 2388c9a3374SJohn McNamara:numref:`table_qos_22` :ref:`table_qos_22` 239fc1f2750SBernard Iremonger 2408c9a3374SJohn McNamara:numref:`table_qos_23` :ref:`table_qos_23` 241fc1f2750SBernard Iremonger 2428c9a3374SJohn McNamara:numref:`table_qos_24` :ref:`table_qos_24` 243fc1f2750SBernard Iremonger 2448c9a3374SJohn McNamara:numref:`table_qos_25` :ref:`table_qos_25` 245fc1f2750SBernard Iremonger 2468c9a3374SJohn McNamara:numref:`table_qos_26` :ref:`table_qos_26` 247fc1f2750SBernard Iremonger 2488c9a3374SJohn McNamara:numref:`table_qos_27` :ref:`table_qos_27` 249fc1f2750SBernard Iremonger 2508c9a3374SJohn McNamara:numref:`table_qos_28` :ref:`table_qos_28` 251fc1f2750SBernard Iremonger 2528c9a3374SJohn McNamara:numref:`table_qos_29` :ref:`table_qos_29` 253fc1f2750SBernard Iremonger 2548c9a3374SJohn McNamara:numref:`table_qos_30` :ref:`table_qos_30` 255fc1f2750SBernard Iremonger 2568c9a3374SJohn McNamara:numref:`table_qos_31` :ref:`table_qos_31` 257fc1f2750SBernard Iremonger 2588c9a3374SJohn McNamara:numref:`table_qos_32` :ref:`table_qos_32` 259fc1f2750SBernard Iremonger 2608c9a3374SJohn McNamara:numref:`table_qos_33` :ref:`table_qos_33` 261fc1f2750SBernard Iremonger 2628c9a3374SJohn McNamara:numref:`table_qos_34` :ref:`table_qos_34` 26327bd48ffSPablo de Lara 26427bd48ffSPablo de Lara:numref:`table_hash_lib_1` :ref:`table_hash_lib_1` 26527bd48ffSPablo de Lara 26627bd48ffSPablo de Lara:numref:`table_hash_lib_2` :ref:`table_hash_lib_2` 267