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