Skip to main content

DPDK 22.11 Release is Now Available!

By Blog

A new major release, DPDK 22.11,  is now available: https://fast.dpdk.org/rel/dpdk-22.11.tar.xz

It was a comfortable release cycle, with:

  •         1387 commits from 193 authors
  •         1902 files changed, 137224 insertions(+), 61256 deletions(-)

The branch 22.11 should be supported for at least two years, maybe more, making it recommended for system integration and deployment.

The new major ABI version is 23.

The next releases, 23.03 and 23.07,  will be ABI-compatible with 22.11.

Below are some new features:

  •         LoongArch build
  •         Intel uncore frequency control
  •         mempool optimizations
  •         new mbuf layout for IOVA-as-VA build
  •         multiple mbuf pools per Rx queue
  •         Rx buffer split based on protocol
  •         hardware congestion management
  •         hairpin memory configuration
  •         proactive NIC error handling
  •         Rx/Tx descriptor dump
  •         flow API extensions
  •         GVE (Google Virtual Ethernet)
  •         IDPF (Intel Infrastructure DataPath Function)
  •         UADK supporting HiSilicon crypto
  •         MACsec processing offload
  •         ShangMi crypto algorithms
  •         baseband FFT operations
  •         eventdev Tx queue start/stop
  •         eventdev crypto vectorization
  •         NitroSketch membership
  •         DTS introduction in DPDK repository

More details in the release notes: https://doc.dpdk.org/guides/rel_notes/release_22_11.html

There are 74 new contributors (including authors, reviewers and testers).

Welcome to:  Abdullah Sevincer, Abhishek Maheshwari, Alan Liu, Aleksandr Miloshenko, Alex Vesker, Alexander Chernavin, Allen Hubbe, Amit Prakash Shukla, Anatolii Gerasymenko, Arkadiusz Kubalewski, Arshdeep Kaur, Benjamin Le Berre, Bhagyada Modali, David MacDougal, Dawid Zielinski, Dexia Li, Dukai Yuan, Erez Shitrit, Fei Qin, Frank Du, Gal Shalom, Grzegorz Siwik, Hamdan Igbaria, Hamza Khan, Henning Schild, Huang Wei, Huzaifa Rahman, James Hershaw, Jeremy Spewock, Jin Ling, Joey Xing, Jun Qiu, Kaiwen Deng, Karen Sornek, Ke Xu, Kevin O’Sullivan, Lei Cai, Lei Ji, Leszek Zygo, Long Wu, Lukasz Czapnik, Lukasz Kupczak, Mah Yock Gen, Mandal Purna Chandra, Mao YingMing, Marcin Szycik, Michael Savisko, Min Zhou, Mingjin Ye, Mingshan Zhang, Mário Kuka, Piotr Gardocki, Qingmin Liu, R Mohamed Shah, Roman Storozhenko, Sathesh Edara, Sergey Temerkhanov, Shiqi Liu, Stephen Coleman, Steven Zou, Sunil Uttarwar, Sunyang Wu, Sylvia Grundwürmer, Tadhg Kearney, Taekyung Kim, Taripin Samuel, Tomasz Jonak, Tomasz Zawadzki, Tsotne Chakhvadze, Usman Tanveer, Wiktor Pilarczyk, Yaqi Tang, Yi Li and Zhangfei Gao.

Below is the number of commits per employer:

A big thank to all courageous people who took on the non rewarding task of reviewing others’ work! Based on Reviewed-by and Acked-by tags, the top non-PMD reviewers are:

  •  (53)     Akhil Goyal 
  •  (45)     Andrew Rybchenko 
  •  (36)    Morten Brørup 
  •  (34)     Niklas Söderlund 
  •  (34)     Bruce Richardson 
  •  (33)     David Marchand 
  •  (31)     Ori Kam
  •  (25)     Maxime Coquelin 
  •  (21)     Jerin Jacob 
  •  (20)     Chengwen Feng 

The next version, DPDK 23.03, will be available in March of 2023. The new features for 23.03 can be submitted during the next 4 weeks: http://core.dpdk.org/roadmap#dates

Please share your roadmap.

Thanks,  everyone!

DPDK Governing Board Meeting Summary – 10/11/22

By Governing Board Minutes

Brief Summary of Governing Board Minutes from 10/11/22

Introduction: Two new arrivals on the project, Robin Giller of intel (replacing St. Leger) and Evi Harmon of LF Marketing (replacing Emily Ruf) introduced themselves and discussed their professional backgrounds.

Changes in Representation: A discussion took place on the pending replacement of the Governing Board Chair. The group also discussed the prospective addition of a vice chair to DPDK, which will necessitate modifications to the language of the current DPDK charter. The group agreed to formally make this decision regarding new charter language, and proceed with the vice chair nomination, via email.

Marketing and Events Updates: The group recapped on registration numbers and attendance for Userspace, and also discussed issues tied to the virtual experience on Zoom for Userspace attendees and strategic ways to enhance the virtual (remote) experience in the future. Several End User Stories were reviewed, as well as forthcoming marketing and outreach efforts.

Financial Updates: DPDK is in healthy financial shape at present, but the networking industry in general faces some key challenges over the coming year. The project is currently in the process of going through membership renewals for 2023.  We need Governing Board approval on the Statement of Work for the University of New Hampshire Community Lab for 2023.

UNH Lab Updates: Operational costs for the Lab in 2023 have increased slightly despite no changes to the SOW. The Governing Board requested additional clarity on this and agreed to seek it via email prior to approving said budget.

Tech Board Updates: The GB tech board rep discussed some concerns regarding the merge of a new Google Driver, tied to the fact that the base code has an MIT license, and the DPDK charter only covers a BSD license. The group discussed the proposed modification of the DPDK charter to cover both licenses. The process of hiring a tech writer is underway. The group also discussed the addition of KPI trackers in the near future.

Discussion re: Changing Perceptions of DPDK: Some concerns were raised during the Userspace event about the  public perception that DPDK has a high barrier to entry. Comments shared at Userspace indicated a concern about DPDK’s high barrier to entry. A team is now looking into the comment to see if it’s a widely shared view, and if it is, what might the project community do about it. 

DPDK Governing Board Meeting Summary – August 23, 2022

By Governing Board Minutes

Brief Summary of Governing Board Minutes from 8/23/22

We did have a quorum present for this meeting, with 8 governing board representatives present.

Introduction: As chair, Jim St. Leger called the meeting to order and welcomed Daniel Havey of Microsoft as Doug Stamper’s interim replacement. 

Changes in Representation: Jim St. Leger announced that he will be departing DPDK as the Intel rep and corresponding chair, to be replaced as Intel representative by Robin Giller. Nominations for chair will be collected via email for a replacement chair by Nathan Southern as PM. Mr. Southern went over this basic process and how it will break down. Mr. St. Leger also discussed changes in the member directory and encouraged governing board representatives who have never sat in on the tech board to do so, likewise encouraged participation in the marketing and events team.

Financial Updates: Rashid Khan discussed project’s overall financial health, and surplus with $1.14 million in the bank by EOY 2022. All sponsors are current on dues owed. Total cost of Userspace $150k, attendance records somewhat low for in person but many virtual attendees. Some financial headwinds noted for 2023, and on that note, the project’s Golden Deck needs to be updated. Mr. Southern agreed to follow up with Mr. Khan on this subject in September. Mr. Khan recommended that we identify someone to champion the use of funds moving forward.

DPDK Marketing and Events: Mr. Southern gave a brief marketing update – around 70 commits for userspace, 30 in person, 40 virtual. 18 commitments for hackathon on September 6th. Remote registration fees have been waived and around $1000 refunded for those who already paid said fees. No sponsorships have been secured. Several leads on End User Stories including a concrete one from a tech board rep that has materialized.

Tech Board Update:

Maxime Coquelin briefly reviewed all of recent DPDK releases and their corresponding release dates; Mr. St. Leger asked Mr. Coquelin about the transition from four releases a year to three anf if this is helpful for the community. Mr. Coquelin didn’t yet have a definitive answer but agreed to add the subject to the September tech board meeting in Arcachon France at Userspace.

Tech Writer Updates: Mr. Southern indicated that we have received applications/interest from 8 promising candidates and will be shepherding them through the interview process.

There were no Community Lab or DTS WG updates presented at this meeting.

 

 

 

 

DPDK Governing Board Meeting Summary – July 12 2022

By Governing Board Minutes


Brief Summary of Governing Board Minutes from 7/12/22

Community Lab: Aaron Conole discussed key strides in critical areas such as HW upgrades, replacement of failed hardware, repair of Broadcom platform issues, and ongoing work on updated container definitions, even as the lab strives for improvements with OpenSSL crypto testing, and confronts challenges such as the need for new lab servers and self-service retesting, and the integration of FIPS testing. Aaron plans to reach out to vendors to request hardware refreshes and audit all hardware, tagging old equipment. Will report back to GB on any related budgetary requirements.

Tech Board Update: Hackathon will take place at Userspace on 9/6., and the tech writer hire process is underway. In light of Olivier Matz’s resignation, the TB is down to 10 members. The TB is also requesting backup servers from Linux Foundation, which Nathan is helping to facilitate.

DPDK Marketing: The website, CFP and registration are live for Userspace 2022, and the final event schedule will be published in the first week of August. A tech board and governing board meeting will be held on location on 9/6 and 9/8 respectively in France with both in person and remote options; TB and GB members have free admission. Sponsorship packages are available and Nathan will share with the community. 

Jill Lovato is soliciting End User Stories and should be contacted with any relevant material.

There were no DTS or Financial Updates at this meeting.

DPDK 22.07 Release is Now Available

By Blog

The latest DPDK release, 22.07, is now available: https://fast.dpdk.org/rel/dpdk-22.07.tar.xz

As is atypical, this Summer release is quite small:

  • 1021 commits from 177 authors
  •  1149 files changed, 77256 insertions(+), 26288 deletions(-)

There are no plans to start a maintenance branch for 22.07.
This version is ABI-compatible with 21.11 and 22.03.

New features include:

  •   initial RISC-V support
  •   sequence lock
  •   protocol-based metering
  •   Rx threshold event
  •   SFP telemetry
  •   async vhost improvements
  •   vhost library statistics
  •   vmxnet3 versions 5 & 6
  •  ECDH crypto
  •  eventdev runtime attributes
  •  DMA device telemetry
  •  SWX pipeline improvements
  •  integration as Meson subproject

More details in the release notes: https://doc.dpdk.org/guides/rel_notes/release_22_03.html

Note: GCC 12 may emit some warnings, some fixes are missing.

Welcome! There are 44 new contributors (including authors, reviewers and testers): 

Abdullah Ömer Yamaç, Abhimanyu Saini, Bassam Zaid AlKilani, Damodharam Ammepalli, Deepak Khandelwal, Diana Wang, Don Wallwork, Duncan Bellamy, Ferdinand Thiessen, Fidaullah Noonari, Frank Zhao, Hanumanth Pothula, Heinrich Schuchardt, Hernan Vargas, Jakub Wysocki, Jin Liu, Jiri Slaby, Ke Zhang, Kent Wires, Marcin Danilewicz, Michael Rossberg, Michal Mazurek, Mike Pattrick, Mingxia Liu, Niklas Söderlund, Omar Awaysa, Peng Zhang, Quentin Armitage, Richard Donkin, Romain Delhomel, Sam Grove, Spike Du, Subendu Santra, Tianhao Chai, Veerasenareddy Burru, Walter Heymans, Weiyuan Li, Wenjing Qiao, Xiangjun Meng, Xu Ting, Yinjun Zhang, Yong Xu, Zhichao Zeng and Zhipeng Lu.

Below is the percentage of commits per employer:

A big thank to all courageous people who took on the non rewarding task of reviewing others’ work. Based on Reviewed-by and Acked-by tags, the top non-PMD reviewers are:

         54     Akhil Goyal 
         52     Fan Zhang 
         42     Jerin Jacob 
         35     Chenbo Xia 
         34     Maxime Coquelin 
         28     Andrew Rybchenko 
         23     Matan Azrad 
         21     Bruce Richardson 
         20     Qi Zhang 
         20     Ferruh Yigit 
         19     Morten Brørup 
         19     Anoob Joseph 

The Next version, 22.11, is scheduled for release in in November, 2022. New features for 22.11 can be submitted during the next 4 weeks:  http://core.dpdk.org/roadmap#dates Please share your roadmap.

Thanks, everyone!

Now Available! DPDK Release 22.03

By Blog

A new release is available: https://fast.dpdk.org/rel/dpdk-22.03.tar.xz

Winter release numbers are quite small,  as usual:

  •  956 commits from 181 authors
  •   2289 files changed, 83849 insertions(+), 97801 deletions(-)

There are no plans for  a maintenance branch for 22.03.

This version is ABI-compatible with 21.11.

  • Below are some new features:
  • Fast restart by reusing hugepages
  • UDP/TCP checksum on multi-segments
  • IP reassembly offload
  • Queue-based priority flow control
  • Flow API for templates and async operations
  • Private ethdev driver info dump
  • Private user data in asymmetric crypto session

More details are available in the official  release notes: https://doc.dpdk.org/guides/rel_notes/release_22_03.html

There are 51 new contributors (including authors, reviewers and testers)!

Welcome to Abhimanyu Saini, Adham Masarwah, Asaf Ravid, Bin Zheng, Brian Dooley, Brick Yang, Bruce Merry, Christophe Fontaine, Chuanshe Zhang, Dawid Gorecki, Daxue Gao, Geoffrey Le Gourriérec, Gerry Gribbon, Harold Huang, Harshad Narayane, Igor Chauskin, Jakub Poczatek, Jeff Daly, Jie Hai, Josh Soref, Kamalakannan R, Karl Bonde Torp, Kevin Liu, Kumara Parameshwaran, Madhuker Mythri, Markus Theil, Martijn Bakker, Maxime Gouin, Megha Ajmera, Michael Barker, Michal Wilczynski, Nan Zhou, Nobuhiro Miki, Padraig Connolly, Peng Yu, Peng Zhang, Qiao Liu, Rahul Bhansali, Stephen Douthit, Tianli Lai, Tudor Brindus, Usama Arif, Wang Yunjian, Weiguo Li, Wenxiang Qian, Wenxuan Wu, Yajun Wu, Yiding Zhou, Yingya Han, Yu Wenjun and Yuan Wang.

Below is the percentage of commits per employer (with authors count):

  A big thank to all courageous people who took on the non rewarding task of reviewing others’ work.

Based on Reviewed-by and Acked-by tags, the top non-PMD reviewers are:
         41     Akhil Goyal 
         29     Bruce Richardson 
         26     Ferruh Yigit 
         20     Ori Kam 
         19     David Marchand 
         16     Tyler Retzlaff 
         15     Viacheslav Ovsiienko 
         15     Morten Brørup 
         15     Chenbo Xia 
         14     Stephen Hemminger 
         14     Jerin Jacob 
         12     Dmitry Kozlyuk 
         11     Ruifeng Wang 
         11     Maxime Coquelin 

 The next version of DPDK, 22.07,  will be released in July.

The new features for 22.07 can be submitted during the next 3 weeks:  http://core.dpdk.org/roadmap#dates.

Please share your roadmap.

Thanks everyone!

DPDK Developer Spotlight: Aaron Conole

By Blog

The DPDK community is composed of a diverse set of active developers who are passionate about transforming the industry through open source. This blog series highlights the people who are collaborating in the trenches to transform data plane acceleration.

Name: Aaron Conole
Title:S Principal Software Engineer
Employer: RedHat

When did you start getting into programming in general? What about data plane?
I started programming in the 80s on a Wang PC in Basic. My first bit of data path programming was in 2001 for a small firm modifying a kernel firewall implementation, and I later did some medical device networking programming in 2003.

How are you involved in DPDK?
I work on some libraries, and am involved in the CI infrastructure (working with UNH IOL, and working on some of the robots that run).

What intrigued you about DPDK or what prompted you to want to contribute to the project?
I was working on Open vSwitch, and we needed a way to get ports bound with vfio in a persistent fashion. Panu Matilainen and I worked on a tool called driverctl that would hook into udev framework to provide a startup solution for DPDK devices to be bound to vfio from the start.

Additionally, we wanted to investigate how huge page sizes would affect performance, so I spent a bit of time looking at the memory management system, and doing some performance analysis. 

When did you start contributing to DPDK?
Late 2015, first with some small cleanups and reviews.

What is your favorite thing about working with DPDK, and what are you most proud of? 
Most proud of, for me, is getting more CI and testing in the DPDK community. It’s good to see more people using the publicly available testing tools. Seeing more attention to things like the unit tests framework, and the developer testing infrastructure improvements is great.

What has been the most challenging part of working with DPDK?
Sort of a follow on, but convincing more developers to do thorough testing. Although now it’s more baked into things. 

 What advice would you give to developers (or others) interested in joining DPDK?
Same advice I would give for any project: start with something small that scratches your itch (whatever that is), and when you run into trouble reach out to the community. You’d be surprised how willing folks are to help.

What are other things you are interested in outside of DPDK (hobbies, fun facts, etc.)?
When I’m not working on software, I tend to make beer, mead, and cider. I also like to spend time in the woods (ATVing, hiking, etc).

DPDK 21.11 is Now Available!

By Blog

By David Marchand

A new major release of DPDK, DPDK 21.11, is now available: https://fast.dpdk.org/rel/dpdk-21.11.tar.xz

This is a big DPDK release, with:

  •    1875 commits from 204 authors
  •     2413 files changed, 259559 insertions(+), 87876 deletions(-)

The branch 21.11 should be supported for at least two years, making it recommended for system integration and deployment. The new major ABI version is 22.The next releases 22.03 and 22.07 will be ABI compatible with 21.11.

As you probably noticed, the year 2022 will see only two intermediate releases before the next 22.11 LTS.

Below are some new features, grouped by category:

* General

  •     hugetlbfs subdirectories
  •     AddressSanitizer (ASan) integration for debug
  •     mempool flag for non-IO usages
  •      device class for DMA accelerators and drivers for
  •      HiSilicon, Intel DSA, Intel IOAT, Marvell CNXK and NXP DPAA
  •     device class for GPU devices and driver for NVIDIA CUDA
  •     Toeplitz hash using Galois Fields New Instructions (GFNI)

* Networking

  •     MTU handling rework
  •     get all MAC addresses of a port
  •     RSS based on L3/L4 checksum fields
  •     flow match on L2TPv2 and PPP
  •     flow flex parser for custom header
  •     control delivery of HW Rx metadata
  •     transfer flows API rework
  •     shared Rx queue
  •     Windows support of Intel e1000, ixgbe and iavf
  •     driver for NXP ENETFEC
  •     vDPA driver for Xilinx devices
  •     virtio RSS
  •     vhost power monitor wakeup
  •     testpmd multi-process
  •     pcapng library and dumpcap tool

* API/ABI

  •     API namespace improvements and cleanups
  •     API internals hidden
  •     flags check for future ABI compatibility

More details in the release notes:  http://doc.dpdk.org/guides/rel_notes/release_21_11.html

There are 55 new contributors (including authors, reviewers and testers)! Welcome to:  Abhijit Sinha, Ady Agbarih, Alexander Bechikov, Alice Michael, Artur Tyminski, Ben Magistro, Ben Pfaff, Charles Brett, Chengfeng Ye, Christopher Pau, Daniel Martin Buckley, Danny Patel, Dariusz Sosnowski, David George, Elena Agostini, Ganapati Kundapura, Georg Sauthoff, Hanumanth Reddy Pothula, Harneet Singh, Huichao Cai, Idan Hackmon, Ilyes Ben Hamouda, Jilei Chen, Jonathan Erb, Kumara Parameshwaran, Lewei Yang, Liang Longfeng, Longfeng Liang, Maciej Fijalkowski, Maciej Paczkowski, Maciej Szwed, Marcin Domagala, Miao Li, Michal Berger, Michal Michalik, Mihai Pogonaru, Mohamad Noor Alim Hussin, Nikhil Vasoya, Pawel Malinowski, Pei Zhang, Pravin Pathak, Przemyslaw Zegan, Qiming Chen, Rashmi Shetty, Richard Eklycke, Sean Zhang, Siddaraju DH, Steve Rempe, Sylwester Dziedziuch, Volodymyr Fialko, Wojciech Drewek, Wojciech Liguzinski, Xingguang He, Yu Wenjun, Yvonne Yang.

Below is the percentage of commits per employer:

A big thank you to all courageous people who took on the non-  rewarding task of reviewing other people’s work. 

Based on Reviewed-by and Acked-by tags, the top non-PMD reviewers are:
    113    Akhil Goyal 
     83    Ferruh Yigit 
     70    Andrew Rybchenko 
     51    Ray Kinsella 
     50    Konstantin Ananyev
     47    Bruce Richardson 
     46    Conor Walsh 
     45    David Marchand 
     39    Ruifeng Wang 
     37    Jerin Jacob 
     36    Olivier Matz 
     36    Fan Zhang 
     32    Chenbo Xia 
     32    Ajit Khaparde 
     25    Ori Kam 
     23    Kevin Laatz 
     22    Ciara Power 
     20    Thomas Monjalon 
     19    Xiaoyun Li 
     18    Maxime Coquelin 

The new features for 22.03 may be submitted during the next 4 weeks so that we can all enjoy a good break at the end of this year. 2022 will see a change in pace for releases timing, let’s make the best of it to make good reviews.

DPDK 22.03 is scheduled for early March:  http://core.dpdk.org/roadmap#dates

Please share your roadmap.

Thanks everyone!

DPDK 21.08 is Here!

By Blog

By Thomas Monjalon, DPDK Tech Board

 The DPDK community has issued its latest quarterly release, 21.08, which is available here: https://fast.dpdk.org/rel/dpdk-21.08.tar.xz

Stats for this (smaller) release:

  •   922 commits from 159 authors
  •   1069 files changed, 150746 insertions(+), 85146 deletions(-)

There are no plans to start a maintenance branch for 21.08. This version is ABI-compatible with 20.11, 21.02 and 21.05.

New features for 21.08 include:

  • Linux auxiliary bus
  • Aarch32 cross-compilation
  •  Arm CPPC power management
  •  Rx multi-queue monitoring for power management
  •  XZ compressed firmware read
  •  Marvell CNXK drivers for ethernet, crypto and baseband PHY
  •  Wangxun ngbe ethernet driver
  •  NVIDIA mlx5 crypto driver supporting AES-XTS
  •  ISAL compress support on Arm

More technical details about 21.08 are included in the the release notes:

https://doc.dpdk.org/guides/rel_notes/release_21_08.html

There are 30 new contributors (including authors, reviewers and testers): 

Welcome to Aakash Sasidharan, Aman Deep Singh, Cheng Liu, Chenglian Sun, Conor Fogarty, Douglas Flint, Gaoxiang Liu, Ghalem Boudour, Gordon Noonan, Heng Wang, Henry Nadeau, James Grant, Jeffrey Huang, Jochen Behrens, John Levon, Lior Margalit, Martin Havlik, Naga Harish K S V, Nathan Skrzypczak, Owen Hilyard, Paulis Gributs, Raja Zidane, Rebecca Troy, Rob Scheepens, Rongwei Liu, Shai Brandes, Srujana Challa, Tudor Cornea, Vanshika Shukla, and Yixue Wang.

Below is the percentage of commits per employer company:

Based on Reviewed-by and Acked-by tags, the top non-PMD reviewers are:        45     Akhil Goyal 

        34     Jerin Jacob 

        21     Ruifeng Wang

        20     Ajit Khaparde 

        19     Matan Azrad 

        19     Andrew Rybchenko

        17     Konstantin Ananyev 

        15     Chenbo Xia 

        14     Maxime Coquelin 

        14     David Marchand 

        13     Viacheslav Ovsiienko 

        11     Thomas Monjalon 

         9     Dmitry Kozlyuk 

         8     Stephen Hemminger 

         8     Bruce Richardson 

 

The next DPDK release, 21.11, will be robust.  

New features for 21.11 can be submitted during for the next month, at this link: http://core.dpdk.org/roadmap#dates.  Please  be sure to share your features roadmap.

Thanks to all involved! Enjoy the rest of the summer!

DPDK Testing Approaches

By Blog

The DPDK (https://www.dpdk.org) project presents a unique set of challenges for fully testing the code, with the largest coverage possible (i.e. the goal of continuous integration and gating). The DPDK testing efforts are overseen by the Community CI group, which meets every other week to review status and discuss open issues with the testing. Before we drive into the details of the testing, the CI group has developed some terminology to describe the different types of testing used within the DPDK CI efforts. First, and probably most obvious, is the simple “compile” testing, or the “does it build” type testing. This is typically referred to as “Compile Testing” by the CI group. Next up is the “Unit Testing,” which refers to running the unit tests provided directly within the DPDK source code tree and maintained by the DPDK developer community. From there, we have two more categories of testing, as “Functional Testing” and “Performance Testing.”  In these cases, the CI community is using the terms to refer to cases where the DPDK stack is operational on the test system (i.e. PMD drivers are bound). Next, we’ll delve a little further into each of the testing types, some of the system requirements, etc.

Compile testing also has the advantage of remaining relatively “uncoupled” from the testing infrastructure. For example, it doesn’t generally depend on specific hardware or PMDs. There are some small exceptions, around architecture, where the compile operation can be a “native” or a “cross compile” target. In the current CI testing, compile jobs are run natively on x86_64 and aarch64 architectures in the community lab, along with an additional cross compile case (x86_64 to aarch64). Another dimension of the compile testing involves the actual OS, libraries, and compiler used for the “test.”  In the community lab, thus far, most of the compile jobs run using GCC versions across various operating systems. The lab aims to maintain coverage of all operating systems officially supported by the current DPDK project releases, along with some additional common OSes, accomplished by running the compile jobs in containers. This greatly simplifies the OS update and maintenance processes, since we can always just update our container images to the latest base image versions, etc. Lastly, for a few of the OSes, the testing is also running on the Clang compiler as well.

Where the Compile Testing leaves of, the Unit Testing picks up. These tests start to run core parts of the compiled DPDK code, flexing operations involving memory allocations and event triggers. Since the unit testing is running parts of the compiled DPDK code, it does start to involve some requirements on the underlying infrastructure. For example, the unit testing expects the system to be prepared with some available hugepages and memory available for the unit testing consumption. In the Community Lab (https://www.iol.unh.edu/hosted-resources/dpdk-performance-lab), the unit testing is still running within the container based infrastructure. The containers run with elevated privileges to support the hugepages access, however, the automation system limits to running only one unit testing container at a time (other compile testing might still be running in parallel). This ensures the unit testing has full access to the required memory and there is only a single “instance” of DPDK running on the system. 

With Functional Testing and Performance Testing, the tool chain switches to use DTS (DPDK Test Suite), which is a Python based tool chain, developed within the community to specifically test DPDK running on bare-metal systems. The community splits the testing based around cases that focus on functionality and performance testing.  Functionality testing verifies items such as configuring a packet filter or frame manipulation and verifying the stack is implementing the function. Performance Testing is focused on verification of the stack against a specific benchmark, such as the maximum packet forwarding rate. In both types of testing, it’s run directly on bare-metal hardware as a combination of system architecture and the actual network interface or PMD. This ensures DPDK code is tested with different interface vendor hardware combinations. The hardware vendors supporting the DPDK testing efforts keep the interface devices and firmware updated to their latest versions, so as the DPDK code evolves, so does the test environment and its hardware / firmware.

Hopefully the above descriptions have helped to explain the testing categories and approaches being taken by the DPDK CI Community efforts to completely test the DPDK project code. In future blogs we get into more detail about how / when the different types of testing are run, i.e. triggered by / for new patches or run periodically on specific code branches. The CI Community meets bi-weekly, on Thursdays at 1pm UTC and all DPDK community members are welcome to join and ask questions or help contribute to the testing efforts. Similarly the community mailing list, ci@dpdk.org, is also a resource as well.