The DPDK Community Lab: Reflecting on 2022 and Looking Ahead

Hosted by The University of New Hampshire InterOperability Lab (UNH-IOL), the DPDK Community Lab exists to provide prompt and reliable continuous integration(CI) testing for all new patches submitted to DPDK by its community of developers. Every time a patch is submitted to DPDK Patchwork, it is automatically applied to the main DPDK branch, or the appropriate next- branch, and run across our test beds. Now entering its 6th year in operation, the Community Lab has progressed beyond its initial goal of simply providing performance testing results. Test coverage is also provided for functional, unit, compile, and ABI testing across a wide array of environments. This has brought greater development stability and feedback to the DPDK developer community, and also to DPDK gold project members who are eligible to host their resources (NICs, CPUs, etc.) at the UNH-IOL lab. This is a great value provided not only to DPDK at large, but also to the participating vendors who would otherwise have to host this testing in house at a significant cost or develop their products without the reliable and timely feedback that CI testing provides.

In 2022, the Community Lab again expanded on its existing operations. Members of the Community Lab submitted patches to DPDK and DTS in order to increase testing and demonstrate DPDK functions. This year, we also broadened the reach of our testing on a hardware coverage level and test case level. With new Arm servers, updated NICs from our participating members, and our furthered use of containerization, we have greatly diversified the set of environments under testing. Specific examples of developments and happenings in the Community Lab this year include, but are not limited to, the following:

  • Submitted patches to DPDK in order to bring its FIPS compliance and FIPS sample application up to date with new processes from NIST, and set up CI infrastructure to test and demonstrate these capabilities across crypto-devs and algorithms. 
  • Expanded hardware testing coverage by introducing newer, higher capacity NICs, as well as expanded our test coverage on ARM based systems.
  • Expanded DPDK branch coverage, including the new LTS “staging” branches. By incorporating these branches into the CI testing process, we can provide greater stability for LTS backporting. 
  • Participated in the DPDK Test Suite (DTS) working group to develop the new DTS and incorporate it into the DPDK main repository. Our contributions included collecting feedback from the community to determine requirements for DTS, setting new formatting standards and development best practices to provide high quality code, and developing a testing approach that provides a consistent environment between users by containerizing DTS.
  • Developed and upstreamed a container building system to the DPDK-CI repository.
  • Updated our Linux distribution test coverage list based on community feedback.
  • Worked with Microsoft to bring DPDK unit testing to Windows.
  • Made the necessary changes in our internal infrastructure and in DPDK to enable OpenSSL unit testing in the lab.

We’re proud of the work we’ve done at the DPDK Community Lab, and we’re looking forward to the 2023 goals. We will work to maintain the test coverage we’ve built up over years and push to demonstrate and test more features according to the desires of the community and our participating vendors. On the hardware side, we aim to introduce new NICs for testing, and incorporate other types of hardware accelerators where possible. Ideally, we will also partner with more DPDK gold member companies to provide our CI testing on their platforms and equipment. Another goal is to expand our traffic generator options so we can provide testing on a broader range of environments. On the software side, the Community Lab will continue making contributions toward the development of new DTS, implementing an email based retesting framework, and increasing our contributions and involvement with the DPDK continuous integration repo. We want to strengthen CI testing within our own lab, but also across the entire community. We’re going to continue engaging with the DPDK CI community, and as always, anyone interested in our work or CI testing in general can find us bi-weekly at the DPDK Community CI meetings. We look forward to writing another blog post in one year’s time to review and reflect on the progress made in the lab during the 2023 calendar year!