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 IremongerGlossary 32fc1f2750SBernard Iremonger======== 33fc1f2750SBernard Iremonger 34fc1f2750SBernard Iremonger 35*bc925f83SJohn McNamaraACL 36*bc925f83SJohn McNamara Access Control List 37fc1f2750SBernard Iremonger 38*bc925f83SJohn McNamaraAPI 39*bc925f83SJohn McNamara Application Programming Interface 40fc1f2750SBernard Iremonger 41*bc925f83SJohn McNamaraASLR 42*bc925f83SJohn McNamara Linux* kernel Address-Space Layout Randomization 43fc1f2750SBernard Iremonger 44*bc925f83SJohn McNamaraBSD 45*bc925f83SJohn McNamara Berkeley Software Distribution 46fc1f2750SBernard Iremonger 47*bc925f83SJohn McNamaraClr 48*bc925f83SJohn McNamara Clear 49fc1f2750SBernard Iremonger 50*bc925f83SJohn McNamaraCIDR 51*bc925f83SJohn McNamara Classless Inter-Domain Routing 52fc1f2750SBernard Iremonger 53*bc925f83SJohn McNamaraControl Plane 54*bc925f83SJohn McNamara The control plane is concerned with the routing of packets and with 55*bc925f83SJohn McNamara providing a start or end point. 56fc1f2750SBernard Iremonger 57*bc925f83SJohn McNamaraCore 58*bc925f83SJohn McNamara A core may include several lcores or threads if the processor supports 59*bc925f83SJohn McNamara hyperthreading. 60fc1f2750SBernard Iremonger 61*bc925f83SJohn McNamaraCore Components 62*bc925f83SJohn McNamara A set of libraries provided by the DPDK, including eal, ring, mempool, 63*bc925f83SJohn McNamara mbuf, timers, and so on. 64fc1f2750SBernard Iremonger 65*bc925f83SJohn McNamaraCPU 66*bc925f83SJohn McNamara Central Processing Unit 67fc1f2750SBernard Iremonger 68*bc925f83SJohn McNamaraCRC 69*bc925f83SJohn McNamara Cyclic Redundancy Check 70fc1f2750SBernard Iremonger 71*bc925f83SJohn McNamaractrlmbuf 72*bc925f83SJohn McNamara An *mbuf* carrying control data. 73fc1f2750SBernard Iremonger 74*bc925f83SJohn McNamaraData Plane 75*bc925f83SJohn McNamara In contrast to the control plane, the data plane in a network architecture 76*bc925f83SJohn McNamara are the layers involved when forwarding packets. These layers must be 77*bc925f83SJohn McNamara highly optimized to achieve good performance. 78fc1f2750SBernard Iremonger 79*bc925f83SJohn McNamaraDIMM 80*bc925f83SJohn McNamara Dual In-line Memory Module 81fc1f2750SBernard Iremonger 82*bc925f83SJohn McNamaraDoxygen 83*bc925f83SJohn McNamara A documentation generator used in the DPDK to generate the API reference. 84fc1f2750SBernard Iremonger 85*bc925f83SJohn McNamaraDPDK 86*bc925f83SJohn McNamara Data Plane Development Kit 87fc1f2750SBernard Iremonger 88*bc925f83SJohn McNamaraDRAM 89*bc925f83SJohn McNamara Dynamic Random Access Memory 90fc1f2750SBernard Iremonger 91*bc925f83SJohn McNamaraEAL 92*bc925f83SJohn McNamara The Environment Abstraction Layer (EAL) provides a generic interface that 93*bc925f83SJohn McNamara hides the environment specifics from the applications and libraries. The 94*bc925f83SJohn McNamara services expected from the EAL are: development kit loading and launching, 95*bc925f83SJohn McNamara core affinity/ assignment procedures, system memory allocation/description, 96*bc925f83SJohn McNamara PCI bus access, inter-partition communication. 97fc1f2750SBernard Iremonger 98*bc925f83SJohn McNamaraFIFO 99*bc925f83SJohn McNamara First In First Out 100fc1f2750SBernard Iremonger 101*bc925f83SJohn McNamaraFPGA 102*bc925f83SJohn McNamara Field Programmable Gate Array 103fc1f2750SBernard Iremonger 104*bc925f83SJohn McNamaraGbE 105*bc925f83SJohn McNamara Gigabit Ethernet 106fc1f2750SBernard Iremonger 107*bc925f83SJohn McNamaraHW 108*bc925f83SJohn McNamara Hardware 109fc1f2750SBernard Iremonger 110*bc925f83SJohn McNamaraHPET 111*bc925f83SJohn McNamara High Precision Event Timer; a hardware timer that provides a precise time 112*bc925f83SJohn McNamara reference on x86 platforms. 113fc1f2750SBernard Iremonger 114*bc925f83SJohn McNamaraID 115*bc925f83SJohn McNamara Identifier 116fc1f2750SBernard Iremonger 117*bc925f83SJohn McNamaraIOCTL 118*bc925f83SJohn McNamara Input/Output Control 119fc1f2750SBernard Iremonger 120*bc925f83SJohn McNamaraI/O 121*bc925f83SJohn McNamara Input/Output 122fc1f2750SBernard Iremonger 123*bc925f83SJohn McNamaraIP 124*bc925f83SJohn McNamara Internet Protocol 125fc1f2750SBernard Iremonger 126*bc925f83SJohn McNamaraIPv4 127*bc925f83SJohn McNamara Internet Protocol version 4 128fc1f2750SBernard Iremonger 129*bc925f83SJohn McNamaraIPv6 130*bc925f83SJohn McNamara Internet Protocol version 6 131fc1f2750SBernard Iremonger 132*bc925f83SJohn McNamaralcore 133*bc925f83SJohn McNamara A logical execution unit of the processor, sometimes called a *hardware 134*bc925f83SJohn McNamara thread*. 135fc1f2750SBernard Iremonger 136*bc925f83SJohn McNamaraKNI 137*bc925f83SJohn McNamara Kernel Network Interface 138fc1f2750SBernard Iremonger 139*bc925f83SJohn McNamaraL1 140*bc925f83SJohn McNamara Layer 1 141fc1f2750SBernard Iremonger 142*bc925f83SJohn McNamaraL2 143*bc925f83SJohn McNamara Layer 2 144fc1f2750SBernard Iremonger 145*bc925f83SJohn McNamaraL3 146*bc925f83SJohn McNamara Layer 3 147fc1f2750SBernard Iremonger 148*bc925f83SJohn McNamaraL4 149*bc925f83SJohn McNamara Layer 4 150fc1f2750SBernard Iremonger 151*bc925f83SJohn McNamaraLAN 152*bc925f83SJohn McNamara Local Area Network 153*bc925f83SJohn McNamara 154*bc925f83SJohn McNamaraLPM 155*bc925f83SJohn McNamara Longest Prefix Match 156fc1f2750SBernard Iremonger 157*bc925f83SJohn McNamaramaster lcore 158*bc925f83SJohn McNamara The execution unit that executes the main() function and that launches 159*bc925f83SJohn McNamara other lcores. 160fc1f2750SBernard Iremonger 161*bc925f83SJohn McNamarambuf 162*bc925f83SJohn McNamara An mbuf is a data structure used internally to carry messages (mainly 163*bc925f83SJohn McNamara network packets). The name is derived from BSD stacks. To understand the 164*bc925f83SJohn McNamara concepts of packet buffers or mbuf, refer to *TCP/IP Illustrated, Volume 2: 165*bc925f83SJohn McNamara The Implementation*. 166fc1f2750SBernard Iremonger 167*bc925f83SJohn McNamaraMESI 168*bc925f83SJohn McNamara Modified Exclusive Shared Invalid (CPU cache coherency protocol) 169fc1f2750SBernard Iremonger 170*bc925f83SJohn McNamaraMTU 171*bc925f83SJohn McNamara Maximum Transfer Unit 172fc1f2750SBernard Iremonger 173*bc925f83SJohn McNamaraNIC 174*bc925f83SJohn McNamara Network Interface Card 175fc1f2750SBernard Iremonger 176*bc925f83SJohn McNamaraOOO 177*bc925f83SJohn McNamara Out Of Order (execution of instructions within the CPU pipeline) 178fc1f2750SBernard Iremonger 179*bc925f83SJohn McNamaraNUMA 180*bc925f83SJohn McNamara Non-uniform Memory Access 181fc1f2750SBernard Iremonger 182*bc925f83SJohn McNamaraPCI 183*bc925f83SJohn McNamara Peripheral Connect Interface 184fc1f2750SBernard Iremonger 185*bc925f83SJohn McNamaraPHY 186*bc925f83SJohn McNamara An abbreviation for the physical layer of the OSI model. 187fc1f2750SBernard Iremonger 188*bc925f83SJohn McNamarapktmbuf 189*bc925f83SJohn McNamara An *mbuf* carrying a network packet. 190fc1f2750SBernard Iremonger 191*bc925f83SJohn McNamaraPMD 192*bc925f83SJohn McNamara Poll Mode Driver 193fc1f2750SBernard Iremonger 194*bc925f83SJohn McNamaraQoS 195*bc925f83SJohn McNamara Quality of Service 196fc1f2750SBernard Iremonger 197*bc925f83SJohn McNamaraRCU 198*bc925f83SJohn McNamara Read-Copy-Update algorithm, an alternative to simple rwlocks. 199fc1f2750SBernard Iremonger 200*bc925f83SJohn McNamaraRd 201*bc925f83SJohn McNamara Read 202fc1f2750SBernard Iremonger 203*bc925f83SJohn McNamaraRED 204*bc925f83SJohn McNamara Random Early Detection 205fc1f2750SBernard Iremonger 206*bc925f83SJohn McNamaraRSS 207*bc925f83SJohn McNamara Receive Side Scaling 208fc1f2750SBernard Iremonger 209*bc925f83SJohn McNamaraRTE 210*bc925f83SJohn McNamara Run Time Environment. Provides a fast and simple framework for fast packet 211*bc925f83SJohn McNamara processing, in a lightweight environment as a Linux* application and using 212*bc925f83SJohn McNamara Poll Mode Drivers (PMDs) to increase speed. 213fc1f2750SBernard Iremonger 214*bc925f83SJohn McNamaraRx 215*bc925f83SJohn McNamara Reception 216fc1f2750SBernard Iremonger 217*bc925f83SJohn McNamaraSlave lcore 218*bc925f83SJohn McNamara Any *lcore* that is not the *master lcore*. 219fc1f2750SBernard Iremonger 220*bc925f83SJohn McNamaraSocket 221*bc925f83SJohn McNamara A physical CPU, that includes several *cores*. 222fc1f2750SBernard Iremonger 223*bc925f83SJohn McNamaraSLA 224*bc925f83SJohn McNamara Service Level Agreement 225fc1f2750SBernard Iremonger 226*bc925f83SJohn McNamarasrTCM 227*bc925f83SJohn McNamara Single Rate Three Color Marking 228fc1f2750SBernard Iremonger 229*bc925f83SJohn McNamaraSRTD 230*bc925f83SJohn McNamara Scheduler Round Trip Delay 231fc1f2750SBernard Iremonger 232*bc925f83SJohn McNamaraSW 233*bc925f83SJohn McNamara Software 234fc1f2750SBernard Iremonger 235*bc925f83SJohn McNamaraTarget 236*bc925f83SJohn McNamara In the DPDK, the target is a combination of architecture, machine, 237*bc925f83SJohn McNamara executive environment and toolchain. For example: 238*bc925f83SJohn McNamara i686-native-linuxapp-gcc. 239fc1f2750SBernard Iremonger 240*bc925f83SJohn McNamaraTCP 241*bc925f83SJohn McNamara Transmission Control Protocol 242fc1f2750SBernard Iremonger 243*bc925f83SJohn McNamaraTC 244*bc925f83SJohn McNamara Traffic Class 245fc1f2750SBernard Iremonger 246*bc925f83SJohn McNamaraTLB 247*bc925f83SJohn McNamara Translation Lookaside Buffer 248fc1f2750SBernard Iremonger 249*bc925f83SJohn McNamaraTLS 250*bc925f83SJohn McNamara Thread Local Storage 251fc1f2750SBernard Iremonger 252*bc925f83SJohn McNamaratrTCM 253*bc925f83SJohn McNamara Two Rate Three Color Marking 254fc1f2750SBernard Iremonger 255*bc925f83SJohn McNamaraTSC 256*bc925f83SJohn McNamara Time Stamp Counter 257fc1f2750SBernard Iremonger 258*bc925f83SJohn McNamaraTx 259*bc925f83SJohn McNamara Transmission 260fc1f2750SBernard Iremonger 261*bc925f83SJohn McNamaraTUN/TAP 262*bc925f83SJohn McNamara TUN and TAP are virtual network kernel devices. 263fc1f2750SBernard Iremonger 264*bc925f83SJohn McNamaraVLAN 265*bc925f83SJohn McNamara Virtual Local Area Network 266fc1f2750SBernard Iremonger 267*bc925f83SJohn McNamaraWr 268*bc925f83SJohn McNamara Write 269fc1f2750SBernard Iremonger 270*bc925f83SJohn McNamaraWRED 271*bc925f83SJohn McNamara Weighted Random Early Detection 272fc1f2750SBernard Iremonger 273*bc925f83SJohn McNamaraWRR 274*bc925f83SJohn McNamara Weighted Round Robin 275