29:
488:
TRex is an open source traffic generator using DPDK. It generates L4–7 traffic based on pre-processing and smart replay of real traffic templates. TRex amplifies both client and server side traffic and can scale to 200 Gbit/s with one UCS using Intel XL710. TRex also supports multiple streams,
252:
The DPDK framework creates a set of libraries for specific hardware/software environments through the creation of an
Environment Abstraction Layer (EAL). The EAL hides the environment specifics and provides a standard programming interface to libraries, available hardware accelerators and other
492:
DTS (DPDK Test Suite) is a Python-based framework for functional tests and benchmarks. It is an open-source project, started in 2014, and is hosted on dpdk.org. It supports both software traffic generators like Scapy and dpdk-pktgen, and a hardware traffic generator like
460:—using DPDK: "We have a goal of being able to forward, with packet filtering at rates of at least 14.88 Mpps. This is 'line rate' on a 10 Gbps interface. There is simply no way to use today's FreeBSD (or Linux) in-kernel stacks for this type of load."
306:
The DPDK also includes software examples that highlight best practices for software architecture, tips for data structure design and storage, application profiling and performance tuning utilities and tips that address common network performance deficits.
485:(VPP) technology: a high performance, packet-processing stack that can run on commodity CPUs, and can leverage the Poll Mode Drivers for both NICs and cryptographic acceleration hardware and libraries. VPP supports and uses the DPDK library.
404:, which is a contributor to the DPDK, several other vendors also support the DPDK within their products and some offer additional training, support and professional services. The list of vendors who have announced DPDK support includes:
253:
hardware and operating system (Linux, FreeBSD) elements. Once the EAL is created for a specific environment, developers link to the library to create their applications. For instance, EAL provides the frameworks to support
466:(OVS) has a limited set of features running userland that can be leveraged to bypass the Linux kernel OVS processing. This use case of OVS with DPDK userland is usually named OVS-DPDK. It is mostly deployed with
474:(SDN) capabilities of Openstack are disabled. For instance, when OVS-DPDK is used, Neutron provides a lower level of security than when OVS kernel is used (no stateful firewalling, less security group).
581:
511:
DDP (Dynamic Device
Personalization) is one of the new advanced features implemented with DPDK. It allows you to load firmware for a device dynamically, without resetting the host.
942:
198:. This offloading achieves higher computing efficiency and higher packet throughput that is possible using the interrupt-driven processing provided in the kernel.
903:
351:
The DPDK includes drivers for many hardware types. There have been some additional out-of-tree plugin drivers in the past, which are now considered deprecated.
751:
481:
VPP platform is an extensible framework that provides out-of-the-box production quality switch/router functionality. It is the open source version of Cisco's
244:
DPDK was created by Intel engineer Venky
Venkatesan, who is affectionately known as "The Father of DPDK." He died in 2018 after a long battle with cancer.
1553:
1148:
1510:
578:
865:
623:
929:
1694:
501:
834:
291:, pipeline or staged, event driven, or hybrid model completely in userspace eliminating kernel and kernel to user copy. Hardware assists from
561:
329:
A memory manager allocates pools of objects in memory and uses a ring to store free objects; ensures that objects are spread equally on all
400:, supported by many companies. DPDK is governed by a Governing Board. The technical activities are overseen by a Technical Board. Beside
948:
444:
project published a road map on 25 February 2015, in which developer Jim
Thompson announced the rewriting of the pfSense core—including
213:
processors and enables faster development of high speed data packet networking applications. It scales from mobile processors, such as
1689:
808:
1576:
849:
791:
1515:
1157:
1601:
1679:
1627:
1546:
1141:
295:, libraries enhanced to make use of Intelligence Storage Acceleration (ISA) for bulk performance and accessing devices via
1325:
1198:
177:
1684:
1433:
878:
330:
316:
222:
173:
63:
471:
40:
296:
368: – provides a Virtual PMD Ethernet layer through shared memory based on 2 memory copies of packets
1622:
1596:
1539:
1134:
303:
too. Hugepages are used for large memory pool allocation, to decrease the amount of lookups and page management.
187:
1653:
1606:
1520:
1173:
916:
700:
482:
84:
930:
Wind River
Delivers Support and Services for Data Plane Development Kit for High-Performance Packet Processing
1505:
1117:
292:
835:
https://builders.intel.com/docs/ALTEN-Calsoft-Labs-and-Intel-Improving-Network-Agility-with-Virtual-CPE.pdf
1648:
413:
1375:
1353:
1251:
674:
191:
111:
558:
504:
network drivers, enabling creating a PF (Physical
Function) and VFs, and also to launch VMs (like
336:
Poll mode drivers (PMD) are designed to work without asynchronous notifications, reducing overhead
1632:
1104:
421:
362:
layer supporting Vmxnet3 paravirtualized NIC; superseded by full VMXNET3 support in native DPDK.
1586:
1458:
1294:
1259:
520:
288:
180:
116:
1562:
1423:
1388:
1165:
1019:
917:
Tieto provides professional software services and support for the Data Plane
Development Kit
478:
397:
274:
234:
206:
184:
165:
123:
91:
28:
814:
489:
ability to change any packet field and provides per stream statistics, latency and jitter.
1264:
1206:
853:
795:
585:
565:
281:
846:
788:
1479:
1398:
789:
6WIND Extends
Portable Packet Processing Software to Support Data Plane Development Kit
494:
449:
810:
Calsoft Labs to offer professional services and support for Data Plane
Development Kit
1673:
1581:
1489:
1070:
445:
381:
mode which is currently deprecated. DPDK's EAL provides support for Linux or FreeBSD
339:
A packet framework – a set of libraries that are helpers to develop packet processing
1484:
1428:
1186:
463:
453:
378:
1041:
726:
1658:
1393:
425:
238:
161:
1289:
1274:
382:
218:
214:
195:
169:
1011:
904:
Radisys
Delivers Industry's First 40G Solution for Data Plane Development Kit
280:
The EAL also provides additional services including time references, generic
1591:
1453:
1443:
1438:
1383:
1279:
1241:
467:
300:
1448:
1361:
1338:
1333:
1284:
1226:
1211:
661:
359:
1343:
1313:
1231:
441:
417:
258:
210:
104:
100:
1403:
1299:
1269:
1216:
270:
266:
230:
226:
636:
1531:
1126:
985:
1091:
776:
457:
409:
405:
401:
254:
96:
969:
540:
1463:
1236:
1221:
505:
1535:
1130:
579:
DPDK, switch and server ref designs push SDN ecosystem forward
429:
343:
All libraries are stored in the dpdk/lib/librte_* directories
262:
202:
128:
1066:
879:"Data Plane Development Kit (DPDK) | Poll Mode Driver (PMD)"
947:, Lanner Electronics Inc., 20 February 2013, archived from
764:
637:"In Loving Memory: Venky Venkatesan, "The Father of DPDK""
388:
EAL can be extended in order to support any processors.
284:
access, trace and debug functions and alarm operations.
412:
Calsoft Labs, Advantech, Brocade, Big Switch Networks,
813:, ALTEN Calsoft Labs, 18 February 2014, archived from
287:
Using DPDK libraries one can implement a low overhead
139:
69:
315:
The DPDK includes data plane libraries and optimized
237:. It is provided and supported under the open-source
1641:
1615:
1569:
1498:
1472:
1416:
1374:
1352:
1324:
1312:
1250:
1197:
1185:
1164:
598:
508:VMs) and assign VFs to them using PCI Passthrough
134:
122:
110:
90:
80:
62:
39:
971:NXP Platform support in Data Plane Development Kit
326:A buffer manager pre-allocates fixed size buffers
377:The DPDK was originally designed to run using a
599:"DPDK: Data Plane Development Kit – What it is"
299:helps to eliminate the performance overhead of
944:Get Flying with the Data Plane Development Kit
750:Intel Communications Infrastructure Division,
675:"How can DPDK access devices from user space?"
470:Neutron but it assumes that many features and
1547:
1142:
662:Data Plane Development Kit: Programmers Guide
396:DPDK is now an open-source project under the
8:
1042:"VPP 105: Memory Management & DPDK APIs"
727:"VPP 105: Memory Management & DPDK APIs"
21:
1521:National Security Agency#Software backdoors
847:ATCA Blade Serves Up Xeon E5-2600 Processor
1554:
1540:
1532:
1321:
1194:
1182:
1149:
1135:
1127:
323:A queue manager implements lockless queues
201:DPDK provides a programming framework for
27:
20:
1511:List of router and firewall distributions
701:"How DPDK can Deflate your Data! | SNIA"
532:
217:, to server-grade processors, such as
7:
626:, Intel Embedded Community, May 2013
176:polling-mode drivers for offloading
46:24.07 / 31 July 2024
752:Data Plane Development Kit Overview
984:Thompson, Jim (25 February 2015).
14:
1577:Cloud Native Computing Foundation
986:"Further (a roadmap for pfSense)"
319:(NIC) drivers for the following:
1516:List of router firmware projects
1040:PANTHEON.tech (9 January 2020).
725:PANTHEON.tech (9 January 2020).
559:All Change for Packet Processing
358: – provides PMD
164:software project managed by the
1602:Open Source Security Foundation
1695:Software using the BSD license
1628:Core Infrastructure Initiative
1105:Userspace Networking with DPDK
1092:Network acceleration with DPDK
1:
500:DPDK has support for several
223:instruction set architectures
1107:, Linux Journal, April 2018.
992:. Electric Sheep Fencing LLC
317:network interface controller
174:network interface controller
16:Open source software project
472:software-defined networking
1711:
154:Data Plane Development Kit
1690:Linux Foundation projects
1623:Open Container Initiative
1120:, Kernel TLV, August 2018
584:18 September 2015 at the
366:librte_pmd_memnic_copy.so
58:
35:
26:
1607:Overture Maps Foundation
877:Technologies, Mellanox.
483:Vector Packet Processing
452:forwarding and shaping,
1506:Comparison of firewalls
588:, SearchSDN, April 2013
168:. It provides a set of
1649:Open Mainframe Project
564:21 August 2016 at the
293:NIC/Regex/Accelerators
1680:Free routing software
794:26 March 2016 at the
624:DPDK Goes Open-Source
568:, Heavy Reading, 2013
414:Mellanox Technologies
356:librte_pmd_vmxnet3.so
1094:, lwn.net, July 2017
852:4 March 2016 at the
777:DPDK Technical Board
577:Shamus McGillicudy,
383:userland application
1685:Networking hardware
225:such as Intel, IBM
23:
1633:OpenAPI Initiative
1354:Partly proprietary
1260:AirOS & EdgeOS
1252:Partly proprietary
951:on 6 December 2015
1667:
1666:
1597:Presto Foundation
1587:OpenJS Foundation
1529:
1528:
1412:
1411:
1370:
1369:
1308:
1307:
521:Express Data Path
289:run-to-completion
181:packet processing
150:
149:
117:Packet processing
1702:
1563:Linux Foundation
1556:
1549:
1542:
1533:
1499:Related articles
1322:
1195:
1183:
1158:Routing software
1151:
1144:
1137:
1128:
1121:
1114:
1108:
1101:
1095:
1088:
1082:
1081:
1079:
1077:
1063:
1057:
1056:
1054:
1052:
1037:
1031:
1030:
1028:
1026:
1020:Linux Foundation
1008:
1002:
1001:
999:
997:
990:blog.pfsense.org
981:
975:
974:
966:
960:
959:
958:
956:
939:
933:
926:
920:
913:
907:
906:, September 2012
900:
894:
893:
891:
889:
874:
868:
863:
857:
843:
837:
832:
826:
825:
824:
822:
805:
799:
798:, September 2011
785:
779:
774:
768:
761:
755:
748:
742:
741:
739:
737:
722:
716:
715:
713:
711:
697:
691:
690:
688:
686:
681:. 22 August 2019
671:
665:
664:, September 2017
658:
652:
651:
649:
647:
633:
627:
620:
614:
613:
611:
609:
595:
589:
575:
569:
555:
549:
548:
537:
398:Linux Foundation
367:
357:
185:operating system
166:Linux Foundation
146:
143:
141:
92:Operating system
76:
73:
71:
53:
51:
31:
24:
1710:
1709:
1705:
1704:
1703:
1701:
1700:
1699:
1670:
1669:
1668:
1663:
1637:
1611:
1570:Sub-foundations
1565:
1560:
1530:
1525:
1494:
1468:
1417:Routing daemons
1408:
1366:
1348:
1317:
1304:
1265:Alliedware Plus
1246:
1190:
1177:
1175:
1172:
1170:
1167:
1160:
1155:
1125:
1124:
1115:
1111:
1102:
1098:
1089:
1085:
1075:
1073:
1065:
1064:
1060:
1050:
1048:
1039:
1038:
1034:
1024:
1022:
1010:
1009:
1005:
995:
993:
983:
982:
978:
968:
967:
963:
954:
952:
941:
940:
936:
927:
923:
919:, February 2012
914:
910:
901:
897:
887:
885:
876:
875:
871:
866:Brocade vRouter
864:
860:
854:Wayback Machine
844:
840:
833:
829:
820:
818:
817:on 4 March 2016
807:
806:
802:
796:Wayback Machine
786:
782:
775:
771:
762:
758:
754:, December 2012
749:
745:
735:
733:
724:
723:
719:
709:
707:
699:
698:
694:
684:
682:
673:
672:
668:
659:
655:
645:
643:
635:
634:
630:
621:
617:
607:
605:
597:
596:
592:
586:Wayback Machine
576:
572:
566:Wayback Machine
556:
552:
539:
538:
534:
529:
517:
438:
394:
375:
365:
355:
349:
313:
277:32- or 64-bit.
250:
138:
68:
54:
49:
47:
17:
12:
11:
5:
1708:
1706:
1698:
1697:
1692:
1687:
1682:
1672:
1671:
1665:
1664:
1662:
1661:
1656:
1651:
1645:
1643:
1639:
1638:
1636:
1635:
1630:
1625:
1619:
1617:
1613:
1612:
1610:
1609:
1604:
1599:
1594:
1589:
1584:
1579:
1573:
1571:
1567:
1566:
1561:
1559:
1558:
1551:
1544:
1536:
1527:
1526:
1524:
1523:
1518:
1513:
1508:
1502:
1500:
1496:
1495:
1493:
1492:
1487:
1482:
1480:Captive portal
1476:
1474:
1473:Other software
1470:
1469:
1467:
1466:
1461:
1456:
1451:
1446:
1441:
1436:
1431:
1426:
1420:
1418:
1414:
1413:
1410:
1409:
1407:
1406:
1401:
1396:
1391:
1386:
1380:
1378:
1372:
1371:
1368:
1367:
1365:
1364:
1358:
1356:
1350:
1349:
1347:
1346:
1341:
1336:
1330:
1328:
1319:
1310:
1309:
1306:
1305:
1303:
1302:
1297:
1292:
1287:
1282:
1277:
1272:
1267:
1262:
1256:
1254:
1248:
1247:
1245:
1244:
1239:
1234:
1229:
1224:
1219:
1214:
1209:
1203:
1201:
1192:
1180:
1162:
1161:
1156:
1154:
1153:
1146:
1139:
1131:
1123:
1122:
1109:
1096:
1083:
1058:
1032:
1003:
976:
961:
934:
921:
908:
895:
869:
858:
845:COTS Journal,
838:
827:
800:
780:
769:
765:Supported NICS
756:
743:
717:
692:
666:
653:
628:
622:Simon Stanley,
615:
590:
570:
557:Simon Stanley,
550:
531:
530:
528:
525:
524:
523:
516:
513:
450:network packet
437:
434:
393:
390:
374:
371:
370:
369:
363:
348:
345:
341:
340:
337:
334:
327:
324:
312:
309:
249:
246:
221:. It supports
172:libraries and
148:
147:
136:
132:
131:
126:
120:
119:
114:
108:
107:
94:
88:
87:
82:
78:
77:
66:
60:
59:
56:
55:
45:
43:
41:Stable release
37:
36:
33:
32:
15:
13:
10:
9:
6:
4:
3:
2:
1707:
1696:
1693:
1691:
1688:
1686:
1683:
1681:
1678:
1677:
1675:
1660:
1657:
1655:
1652:
1650:
1647:
1646:
1644:
1640:
1634:
1631:
1629:
1626:
1624:
1621:
1620:
1618:
1614:
1608:
1605:
1603:
1600:
1598:
1595:
1593:
1590:
1588:
1585:
1583:
1582:Cloud Foundry
1580:
1578:
1575:
1574:
1572:
1568:
1564:
1557:
1552:
1550:
1545:
1543:
1538:
1537:
1534:
1522:
1519:
1517:
1514:
1512:
1509:
1507:
1504:
1503:
1501:
1497:
1491:
1488:
1486:
1483:
1481:
1478:
1477:
1475:
1471:
1465:
1462:
1460:
1457:
1455:
1452:
1450:
1447:
1445:
1442:
1440:
1437:
1435:
1432:
1430:
1427:
1425:
1422:
1421:
1419:
1415:
1405:
1402:
1400:
1397:
1395:
1392:
1390:
1387:
1385:
1382:
1381:
1379:
1377:
1373:
1363:
1360:
1359:
1357:
1355:
1351:
1345:
1342:
1340:
1337:
1335:
1332:
1331:
1329:
1327:
1326:Entirely free
1323:
1320:
1315:
1311:
1301:
1298:
1296:
1293:
1291:
1288:
1286:
1283:
1281:
1278:
1276:
1273:
1271:
1268:
1266:
1263:
1261:
1258:
1257:
1255:
1253:
1249:
1243:
1240:
1238:
1235:
1233:
1230:
1228:
1225:
1223:
1220:
1218:
1215:
1213:
1210:
1208:
1205:
1204:
1202:
1200:
1199:Entirely free
1196:
1193:
1188:
1184:
1181:
1179:
1169:
1163:
1159:
1152:
1147:
1145:
1140:
1138:
1133:
1132:
1129:
1119:
1118:DPDK in depth
1113:
1110:
1106:
1100:
1097:
1093:
1087:
1084:
1072:
1071:Cisco Systems
1068:
1062:
1059:
1047:
1046:PANTHEON.tech
1043:
1036:
1033:
1021:
1017:
1013:
1007:
1004:
991:
987:
980:
977:
973:
972:
965:
962:
950:
946:
945:
938:
935:
931:
925:
922:
918:
912:
909:
905:
902:MarketWatch,
899:
896:
884:
880:
873:
870:
867:
862:
859:
855:
851:
848:
842:
839:
836:
831:
828:
816:
812:
811:
804:
801:
797:
793:
790:
784:
781:
778:
773:
770:
766:
760:
757:
753:
747:
744:
732:
731:PANTHEON.tech
728:
721:
718:
706:
702:
696:
693:
680:
676:
670:
667:
663:
657:
654:
642:
638:
632:
629:
625:
619:
616:
604:
600:
594:
591:
587:
583:
580:
574:
571:
567:
563:
560:
554:
551:
546:
545:core.dpdk.org
542:
536:
533:
526:
522:
519:
518:
514:
512:
509:
507:
503:
498:
496:
490:
486:
484:
480:
475:
473:
469:
465:
461:
459:
455:
451:
447:
443:
435:
433:
431:
427:
423:
419:
415:
411:
407:
403:
399:
391:
389:
386:
384:
380:
372:
364:
361:
354:
353:
352:
346:
344:
338:
335:
332:
328:
325:
322:
321:
320:
318:
310:
308:
304:
302:
298:
294:
290:
285:
283:
278:
276:
272:
268:
264:
260:
256:
247:
245:
242:
240:
236:
232:
228:
224:
220:
216:
212:
208:
204:
199:
197:
193:
189:
186:
182:
179:
175:
171:
167:
163:
159:
155:
145:
137:
133:
130:
127:
125:
121:
118:
115:
113:
109:
106:
102:
98:
95:
93:
89:
86:
83:
79:
75:
67:
65:
61:
57:
44:
42:
38:
34:
30:
25:
19:
1485:Neighbornode
1429:B.A.T.M.A.N.
1116:Rami Rosen,
1112:
1103:Rami Rosen,
1099:
1090:Rami Rosen,
1086:
1074:. Retrieved
1061:
1049:. Retrieved
1045:
1035:
1023:. Retrieved
1015:
1006:
994:. Retrieved
989:
979:
970:
964:
953:, retrieved
949:the original
943:
937:
924:
911:
898:
886:. Retrieved
882:
872:
861:
841:
830:
819:, retrieved
815:the original
809:
803:
783:
772:
759:
746:
734:. Retrieved
730:
720:
708:. Retrieved
705:www.snia.org
704:
695:
683:. Retrieved
678:
669:
656:
644:. Retrieved
640:
631:
618:
606:. Retrieved
602:
593:
573:
553:
544:
535:
510:
499:
491:
487:
476:
464:Open vSwitch
462:
454:link bonding
439:
395:
387:
376:
350:
342:
314:
305:
286:
279:
251:
243:
200:
157:
153:
151:
18:
1659:Hyperledger
1616:Initiatives
1389:ExtremeWare
1376:Proprietary
1076:29 December
1025:29 December
1012:"VPP fd.io"
888:10 February
856:, June 2012
660:DPDK Docs,
426:Lanner Inc.
373:Environment
261:, Intel IA-
239:BSD license
194:running in
162:open source
1674:Categories
1290:SmoothWall
1275:ExtremeXOS
1016:wiki.fd.io
932:, May 2012
821:28 October
527:References
422:Wind River
379:bare-metal
219:Intel Xeon
215:Intel Atom
196:user space
170:data plane
81:Written in
64:Repository
50:2024-07-31
1592:LF Energy
1454:OpenOSPFD
1444:GNU Zebra
1439:FRRouting
1384:Cisco IOS
1280:FRITZ!Box
1242:Zeroshell
1176:operating
1166:Operating
928:Reuters,
685:28 August
468:OpenStack
420:, Tieto,
392:Ecosystem
311:Libraries
301:interrupt
192:processes
183:from the
1642:Projects
1449:OpenBGPD
1362:Junos OS
1339:OPNsense
1334:m0n0wall
1285:RouterOS
1227:libreCMC
1212:Floppyfw
996:21 April
883:Mellanox
850:Archived
792:Archived
679:CodiLime
608:29 March
603:dpdk.org
582:Archived
562:Archived
515:See also
436:Projects
360:Ethernet
333:channels
248:Overview
160:) is an
1344:pfSense
1314:FreeBSD
1232:OpenWrt
1178:systems
1174:network
1168:systems
1051:21 June
955:11 July
915:Tieto,
787:PRWeb,
736:21 June
710:21 June
442:pfSense
418:Radisys
347:Plugins
297:polling
259:FreeBSD
211:PowerPC
135:Website
124:License
105:Windows
101:FreeBSD
48: (
1459:Quagga
1300:Vyatta
1295:Tomato
1270:DD-WRT
1217:IPFire
1207:Endian
1067:"TRex"
646:12 May
541:"DPDK"
271:POWER9
269:, IBM
267:64-bit
233:, and
231:EZchip
227:POWER8
209:, and
188:kernel
1654:SONiC
1424:Babel
1399:TiMOS
1394:NX-OS
1318:based
1191:based
1187:Linux
1171:&
502:SRIOV
479:FD.IO
458:IPsec
410:ALTEN
406:6WIND
402:Intel
255:Linux
142:.dpdk
97:Linux
72:.dpdk
1464:XORP
1434:BIRD
1237:VyOS
1222:LEDE
1078:2016
1053:2021
1027:2016
998:2015
957:2013
890:2021
823:2014
738:2021
712:2021
687:2019
648:2022
641:DPDK
610:2016
506:QEMU
495:Ixia
477:The
440:The
428:and
331:DRAM
273:and
158:DPDK
152:The
144:.org
112:Type
74:.org
22:DPDK
1490:Tor
1404:VRP
430:NXP
282:bus
275:ARM
265:or
235:ARM
207:ARM
203:x86
190:to
178:TCP
140:www
129:BSD
70:git
1676::
1069:.
1044:.
1018:.
1014:.
988:.
881:.
729:.
703:.
677:.
639:.
601:.
543:.
497:.
456:,
448:,
446:pf
432:.
424:,
416:,
408:,
385:.
263:32
257:,
241:.
229:,
205:,
103:,
99:,
1555:e
1548:t
1541:v
1316:-
1189:-
1150:e
1143:t
1136:v
1080:.
1055:.
1029:.
1000:.
892:.
767:"
763:"
740:.
714:.
689:.
650:.
612:.
547:.
156:(
85:C
52:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.