The latest DPDK Dispatch for May is here!
Skip to main content
Category

Community Spotlight

First Patch Submission to the DPDK Open-Source Project

By Community Spotlight

Let me first explain why I decided to submit a patch…

Recently, I was working on a research project that utilized the DPDK framework. During the process, I realized that the framework’s driver did not implement all the functionalities specified by the network card. Since one particular functionality, the “launch time feature”, was essential for my work, I spent some time modifying the driver for my project to use this feature.

After that, I decided to invest some time integrating this patch into the DPDK framework, basically for two main reasons. First, I believe this feature is essential for real-time community to use DPDK, and I have seen several discussions online about it, suggesting that its implementation could benefit many others. Secondly, I had never contributed to a large open-source project before and saw this as an opportunity to learn the basic process of submitting patches.

1. Preparation

Before submitting the patch, it’s crucial to understand the project’s development process. DPDK is an open-source project currently managed by Linux Foundation. The development of DPDK happens on the mailing list (like Linux kernel) instead of on GitHub. This means we can’t simply use git commit to submit patches, then followed by a pull request. Instead, patches are submitted via email to maintainers. Therefore, some extra preparatory steps are needed before submission, including:

  • Registering and subscribing to the DPDK mailing list
  • Configuring email to use git-send-email
  • Identifying the maintainers and the subtree of the module you are modifying

Mailing List: The process of registering and subscribing to the mailing list is relatively straightforward and can be done by following the steps in the DPDK official documentation. I won’t repeat that here. I also recommend registering for Patchwork to easily track the code review process. From my experience, it’s best to disable receiving all the emails from the mailing list or set the digest mode to only receive one summary per day, otherwise the daily generated patches will mix with the regular email and overflow the mailbox…

img

Email Configuration: Setting up the email is also quite simple. I used a Google email, and configured it following this article to link git send-email. I didn’t encounter any issues during the process.

Finding Maintainers: DPDK is a large, modular open-source project, designed for collaborative work. Each module has a designated maintainer, and some even have specific maintenance branches. Therefore, it’s necessary to find the maintainer and the branch of the module you want to modify, and submit the patch to them for integration into the mainline repository. An important point to note is to use the script devtools/get-maintainer.sh in the repository to automatically find the maintainers to Cc, just like this:

git send-email –to dev@dpdk.org –cc-cmd devtools/get-maintainer.sh

The first time, I attempted to find maintainer information in the list provided in the documentation and manually added it to the CC field. However, I later discovered that this information was outdated, which led me to inadvertently send the patch to a previous maintainer…

As for understanding the project’s coding style, I suggest not spending too much time studying the official style guide. This is because you can ensure the consistency of the coding style with the automated review scripts mentioned later.

2. Writing the Patch

The process of writing the patch is essentially modifying the original code to fix bug or add new functionalities, and after formatting it with diff, these modifications become the patch. An important suggestion here is to disable the auto-formatting feature of your IDE. Many projects have unique code formatting styles, and auto-formatting might mess up the format with Tab/Space changes everywhere.

2.1 Testing

Testing is divided into three main parts:

  • Compilation and functional testing
  • Code style check
  • ABI Policy

Compilation and Functional Testing: Since my modifications were minor, I only compiled it on my local machine. The specific process is largely similar to installing DPDK, except the first step involves using meson setup –wipe build to clear the previous build directory. For functional testing, I recommend testing all DPDK built-in apps that might be affected, such as dpdk-testpmd.

Code Style Check: This part can be done following the Section 5.7 Checking the Patches in the DPDK official tutorial. It’s important to note that you need to download checkpatch.pl yourself (You can get the source code by Google searching, just a simple script). After generating codespell-dpdk.txt as instructed, run devtools/checkpatches.sh patch_name.patch in the same directory. The output log shows the results, where both errors and warnings need to be corrected, but some checks may not need changes if they are unreasonable.

ABI Policy: ABI Policy refers to the requirements for variable and function naming. It is recommended to self-check against the official ABI Guideline. But personally, I feel if no new file is created, there shouldn’t be many issues, just compare with the surrounding code to get a sense of the appropriate naming conventions.

2.2 Submitting the Patch

After testing, it is good to generate the patch. Before doing so, it’s recommended to double-check your git username and email, using git config –global user.name & git config –global user.email.

My method of generating patches might not be the best practice. I initially used git add & git commit for a simple commit, then git commit –amend to modify the commit message. Finally, I generated the patch with git format-patch -1 -o ~/patch/. Here -1 indicates the patch-set includes the last few commits, but I only needed to generate one patch.

Before submission, check if the patch contains the Signed-off-by: xxxxx <xxxxxx@xxx> line. Mine wasn’t generated automatically, so I added it manually.

Finally, the patch can be submitted via git send-email, typically –to the mailing list dev@dpdk.org, and –cc to maintainers.

git send-email \

–to dev@dpdk.org \

–cc-cmd devtools/get-maintainer.sh \

./patch_name.patch

Before sending, it is best to first send it to yourself to check if the email format is correct with git send-email –to=[your email] patch_name.patch.

If you have registered for Patchwork, you’ll receive the patch submission notification after a few hours.

3. Code Review

Compared to smaller open-source projects, code review in DPDK is quite stringent, involving both automated reviews from the system and manual reviews from maintainers.

The results of the automated review are received via email within a few hours of submission. Fortunately, despite this being my first patch submission, no errors were detected with beginner luck.

img

In the subsequent manual review phase, maintainers pose questions about the content of the patch, which feels similar to the rebuttal phase of a research paper submission process. The main issues raised in my case focused on:

  • Explaining the functionality of different lines of code
  • Justifying the chosen solution
  • Providing test results

Responding directly to these questions is usually sufficient. A few minor details to note:

  1. When replying, use the –in-reply-to parameter to specify which email you are responding to.

git send-email \

–in-reply-to=xxxxxxxx.namprd11.prod.outlook.com \

–to=xxxx@xxx.com \

–cc=xxxx@xxx.com \

–subject=”RE: [PATCH] net/e1000: support launchtime feature” \

./reply.txt

  1. Pay attention to formatting. Indicate references to previous emails by adding >.
  2. In the subject, add RE: before the title of the patch. Remember, no matter how many times you reply, there should only be one RE:, not a chain like RE: RE: RE:

4. Lessons

Although the process seemed somewhat complicated to me initially, the friendly atmosphere made it smoother. From submission to the final review, it took me over ten days, which included three replies and one code update. Along the way, I encountered some technical issues and uncertainties. However, these were resolved with the help of the maintainers and other developers, who provided guidance and support throughout the process.

The biggest takeaway for me from this experience is that contributing to a large open-source project is not as daunting as it might seem. It’s often the intricate rules and the stereotypes about open-source communities that dissuade people from getting involved. However, I found that the community was welcoming, and the process, while detailed, was manageable when you are willing to spend some time on it.

Although contributing to the open-source community is not my focus, attempting to submit a patch was definitely a valuable experience.

You can follow Chuanyu on Medium here

And get started with DPDK here

DPDK Dev Spotlight: Sean Cummings Makes his Mark in the DPDK Ecosystem

By Community Spotlight

In the dynamic world of software development, where innovation and skill merge to push the boundaries of technology, Sean Cummings stands as a bright example as a new contributor to DPDK. Currently working as a Student Assistant in Scientific Networking at ESnet, Sean is carving his path in the field of high-performance networking, a journey that started at Illinois Tech under the mentorship of Professor Sultana.

Early Beginnings

Sean’s foray into software development began with his academic pursuits in computer science, where he quickly found himself immersed in the complex world of computer networking. His academic endeavors led him to work on a groundbreaking 100Gbps SIIT-DC stateless NAT64 translator project utilizing P4 on FPGAs.

DPDK: A Game-Changer

The project revealed the limitations of P4 in handling complex packets, which steered Sean towards DPDK. Embracing DPDK as an offload solution, Sean quickly recognized its potential as a vital tool in his development work. His experience with DPDK has been transformative, making him an advocate for its use in high-performance networking.

Contributing to the DPDK Community

Sean’s involvement with DPDK is not just as a user but as an active contributor. He underscores the importance of contributing to communities like DPDK, as it fosters growth and innovation. Sean is particularly excited about the potential applications of DPDK in developing security-related applications.

Getting Involved

For those interested in DPDK, Sean recommends starting with installing it and experimenting with sample applications. This hands-on approach allows one to appreciate the capabilities of DPDK and potentially lead to more complex, personalized projects.

Problem Solving

One of the most impactful pieces of advice that has shaped Sean’s journey is the emphasis on understanding the problem before embarking on the coding journey. This approach underlines the fact that the essence of programming lies in problem-solving, a philosophy that has steered Sean through his developmental endeavors.

Indispensable Tools

As a programmer and researcher, Sean emphasizes the importance of tools like vim (one of the most popular text editors among Linux users) in his daily work. For him, vim is not just a tool but an integral part of his coding and research process.

Conclusion 

Sean represents the new generation of developers who are not just proficient in their craft but are also deeply involved in contributing to and growing with their communities. His journey with DPDK is a testament to his dedication and passion for high-performance networking.

Looking to get started with DPDK? Visit the quick start guide here

Dev Spotlight: Navigating the Evolution of DPDK: A Spotlight on Akhil Goyal

By Community Spotlight

Introduction

In the dynamic and ever-evolving world of the Data Plane Development Kit (DPDK), developers and contributors play a pivotal role in shaping its future. One such influential figure is Akhil Goyal, whose journey through the realms of DPDK has not only contributed to its growth but also exemplifies the spirit of open-source collaboration. This spotlight delves into his role as a crypto tree maintainer, exploring his contributions, challenges, and visions for the future.

Early Beginnings

Akhil’s adventure with DPDK began in 2016, a pivotal moment that marked his transition from working on networking and radio frequency device drivers at Freescale (now NXP) to diving into the world of high-performance packet processing. His initial foray into DPDK centered around crypto drivers, laying the groundwork for his future contributions.

In early 2021, he embarked on a new professional chapter with Marvell, delving into areas that involved both networking and crypto processing like Inline IPsec processing, along with IP reassembly techniques. Akhil’s expertise further extended to introducing inline MACsec processing, showcasing his ability to navigate the complex landscape of network security. His contributions also included the development of TLS record processing, underscoring his role in enhancing Marvell’s capabilities in secure data communication.

Contributions to DPDK

Akhil’s contributions to DPDK are both substantial and transformative. Early in his DPDK journey, he focused on bringing the NXP DPAA crypto drivers into the DPDK ecosystem. His efforts were instrumental in introducing a new library to DPDK, which, for the first time, included protocol support alongside crypto functionalities. He also reviewed other crypto subsystem patches in the community, paving the way to becoming a maintainer of the crypto sub-tree.

This inclusion of a security library was a significant milestone, enabling DPDK to support various crypto offloads for security protocols like IPSec, PDCP, MACsec, and, more recently, TLS. Akhil’s work has significantly broadened DPDK’s capabilities, making it a more versatile and powerful tool for developers.

Challenges and Overcoming Them

Like any journey of innovation and development, Akhil’s path was not without its challenges. One of the most significant hurdles was the introduction of the security library, which initially faced performance issues. However, through dedication and technical acumen, Akhil and his team were able to dramatically enhance the performance numbers, exemplifying the impact of hardware offloading on protocol processing. This achievement not only showcased his problem-solving skills but also his commitment to advancing DPDK’s performance and capabilities.

Vision for the Future

Looking ahead, Akhil sees a fusion of technologies as the future of DPDK. With the convergence of AI, machine learning, and enhanced security protocols, he envisions a landscape where DPDK continues to play a crucial role in the networking domain. His anticipation of machine learning libraries being integrated into DPDK highlights a forward-thinking approach to evolving network technologies and their applications.

As networking speeds increase, he foresees an increasing need to protect the confidentiality and authenticity of networking data. This will pave the way for offloading more security protocols to hardware to achieve line-rate processing of secured data. As a result, programming hardware is becoming increasingly complex.

Collaborations and Community

Akhil’s journey is also a testament to the power of community and collaboration in open-source projects. His interactions with other community members, such as Pablo de Lara from Intel and Thomas Monjalon from NVIDIA, have been pivotal in his growth and contributions to DPDK. These experiences helped him transition from being a contributor to DPDK to a maintainer of the crypto subsystem. These collaborations underline the essence of open-source projects, where sharing knowledge and working together propels the technology forward.

Advice to New Contributors

For those looking to contribute to DPDK, Akhil emphasizes the importance of understanding the project’s core, starting with resources like the DPDK Summit videos and the mailing list. He encourages new contributors to engage with the community, understand the coding guidelines, and start contributing, highlighting the transition from kernel space to user space as a potential area for significant contributions. He also recommends that people review patches in their areas of interest on the mailing list and post comments. This will help improve their understanding and also help the community grow.

Personal Insights

Beyond his professional accomplishments, Akhil offers valuable insights into achieving a work-life balance, particularly in the era of remote work that became prevalent during the COVID-19 pandemic. His adeptness at managing professional duties while making time for family activities, such as playing cricket with his son, reveals the personal dimension of navigating a challenging career as a developer. This insight underscores the importance of maintaining personal connections and well-being amidst the demands of the tech industry.

Conclusion

Akhil’s developer spotlight shines a light on the journey of a dedicated individual who has contributed significantly to DPDK’s growth and evolution. His story is one of dedication, collaboration, and forward-thinking, driving innovations that extend DPDK’s capabilities and applications. As DPDK continues to evolve, contributors like Akhil play a critical role in shaping its direction, ensuring it remains at the forefront of networking technology advancements.

Check out Akhil’s presentation on rte_security: support for inline MACsec at latest DPDK Summit here.

Dev Spotlight: The Journey from Music to Tech with Anatoly Burakov

By Community Spotlight

In this edition of our developer spotlight, we had the privilege of speaking with Anatoly Burakov, a foundational and key contributor to the DPDK (Data Plane Development Kit). This spotlight explores Anatoly’s unique journey into software development, his role at Intel, and his significant contributions to the DPDK community.

From Music to Technology: A Unique Path

Anatoly Burakov’s journey to software development was anything but conventional. Initially aiming for a career as a pianist, Anatoly found a new passion in coding, turning a hobby into a professional career. His first foray into programming was not in a conventional classroom but rather through a PlayStation 2, showcasing early signs of his innovative and problem-solving mindset. This unconventional start was a prelude to a fascinating career in technology.

His transition from music to technology marked a pivotal shift in his life. He pursued computer networking at a university in the UK, setting the stage for his eventual role at Intel. This transition underscores a key theme in Anatoly’s story: the ability to adapt and find new passions.

Intel and the World of DPDK

Joining Intel marked a significant chapter in Anatoly’s professional life. Starting out, he wasn’t a seasoned software developer but possessed enough coding prowess to navigate through various challenges. This period was crucial in honing his skills and understanding the nuances of professional software development.

At Intel, Anatoly began working with the DPDK, a toolkit that was relatively obscure at the time. His initial tasks involved unit testing and bug fixing, which he found particularly fulfilling. He describes the joy that comes from identifying and resolving issues, a testament to his deep understanding of systems and problem-solving abilities.

Community Engagement and Collaboration

Anatoly’s engagement with the DPDK community gained momentum with the release of version 1.7. This was a notable milestone, as it marked the first time Intel integrated its changes into the public tree created by Thomas Monjalon. This integration was more than just a technical accomplishment; it symbolized the beginning of a more collaborative and open era for DPDK.

Anatoly’s role in this process was significant. He was the first from Intel to engage deeply with the DPDK community, working on adding VFIO support. His contributions were substantial, at one point holding the record for the most patches submitted to the DPDK community. This achievement highlights not only his technical skills but also his commitment to the community and open-source development.

The Intersection of Music and Coding

Anatoly’s coding philosophy is influenced by his musical background. He views coding not merely as a technical task, but as a form of expression, similar to a narrative that elucidates a solution to a problem. His extensive use of comments, often laced with humor, marks a distinctive aspect of his style. These comments offer clear explanations and maintain a logical flow, making his contributions functional, educational, and entertaining.

Hyperscan and the Role of a Generalist

Anatoly’s career took an exciting turn with Intel’s acquisition of Sensory Networks, where he became one of the first engineers to work on Hyperscan, a high-performance regular expression matching engine. This project underscored his role as a generalist – someone who excels in adapting to a multitude of tasks and overcoming diverse challenges, as opposed to being domain specific.

Engaging with the DPDK Community

Engaging with the DPDK community was a significant step in Anatoly’s career. He played a key role in integrating Intel’s work with the public DPDK tree, a process that started around the release of DPDK 1.7. This integration was pivotal for DPDK, marking the beginning of a more collaborative and open environment. Anatoly’s approach to community engagement—submitting code, taking feedback constructively, and contributing solutions—mirrors the ethos of open-source communities.

Advice for Aspiring DPDK Contributors

For new developers aspiring to contribute to DPDK, Anatoly advises starting by addressing personal pain points encountered while using DPDK. This approach not only makes the initial foray into contributing more relatable but also ensures that the contributions are genuinely beneficial to end-users.

His emphasis on solving real problems reflects a practical mindset that is crucial in open-source development. For instance, if a prospective contributor finds DPDK difficult to set up or confusing to use, one way to address that would be to improve documentation.

In the past, there were many requirements on how to specify command line arguments. Although DPDK has moved away from that, there are still some command line arguments that could use better documentation or perhaps a different syntax.

Whatever needs fixing, is probably a good starting point. Fixing someone else’s problems can be fun, but for a new developer, the big driver in programming and learning how to program in the first place was trying to solve something you didn’t want to do manually or to automate something.

Looking ahead

While Anatoly’s capabilities as a generalist enable him to work effectively in both software and hardware domains, his personal inclination leans more towards software. A significant portion of his time and efforts are spent deep in the bowels of DPDK’s OS abstraction layers.

Life Beyond Coding

Outside of his professional life, Anatoly enjoys the simple pleasures of life, like relaxing on the beach or watching Netflix. His move from Ireland to Mallorca has been a significant change, offering him a new environment to explore and enjoy.

His hobbies, including audio mixing, and playing guitar demonstrate a continued passion for music, albeit in a different form than his initial pursuit of being a pianist. 

A Tale of Continuous Learning

Anatoly’s story is a testament to continuous learning and adaptation. From a pianist to a software developer, his journey exemplifies the unexpected paths our careers can take, leading us to thrive in new and exciting and often unexpected domains. His involvement in DPDK transcends mere occupation, highlighting the transformative power of open-source communities in fostering collaboration and development.

Dev Spotlight: The Technological Voyage of Maxime Coquelin from Linux Enthusiast to DPDK  Maintainer

By Community Spotlight

At its core, the profession of software development transcends the mere formulation of commands for machines; it’s a unique language, an outlet for modernization, and a conduit for creativity. 

The career path of Maxime Coquelin, a senior software engineer at Red Hat and a key contributor to the Data Plane Development Kit (DPDK) project, serves as a tangible testament to this belief. 

The Genesis of a Developer

Maxime’s affinity for open-source computing emerged during his school days, a time marked by his fascination with Linux and its seemingly endless capabilities. 

His early programming experiences involved BASIC on an Intel 286 PC. Soon, Maxime dove into the complexities of microcontrollers, laying the groundwork for his future pursuits in software development. 

His professional journey kicked off at ST-Ericsson and then STMicroelectronics. Here, he was involved in developing Linux kernel systems for the first generation of Android phones and maintaining Kernel support for ARM System-On-Chips. 

This initial experience in the Linux kernel world enabled Maxime to engage effectively within the open-source community, setting the stage for a plethora of significant contributions.

Open Source: A Developer’s Canvas 

Early in his career, Maxime recognized the profound influence of open-source development. He embarked on his journey into the open-source community by patching bugs he encountered within the Linux kernel during his work. 

These first steps triggered a spark that catalyzed Maxime to immerse himself in open-source projects and hone his programming skills. 

A key aspect of his involvement was the rigorous review of other developers’ code, which greatly augmented his visibility within the community and underscored his commitment to enhancing software quality. 

This proactive participation eventually culminated in Maxime’s recognition as a core contributor.

Venturing into DPDK

Upon joining Red Hat, Maxime found a shared ethos in the company’s upstream-first strategy, marking the inception of his association with DPDK. 

He played an integral role in contributing to the Vhost-user library, which subsequently became a springboard for his contributions to DPDK. 

As a result, he assumed the position of the core maintainer for the Virtio/Vhost and more recently baseband subsystems. 

Today, he is engaged in working on Virtio technology and VDUSE, bridging the gap between DPDK and the Linux Kernel. 

One significant contribution has been his contributions to the implementation of the vDPA framework, which aims at providing hardware-accelerated and standardized interfaces to virtual machines and containers. 

The Heart of Community Collaboration

In Maxime’s perspective, DPDK epitomizes a platform for collaborative innovation rather than rivalry. Maxime believes in nurturing newcomers, drawing from his experiences of overcoming initial hurdles in the field. 

He strives to foster an inclusive atmosphere within the DPDK community and inspires new contributors to follow the submission guidelines and view mistakes as stepping stones towards proficiency. 

The essence of open-source, in Maxime’s view, is the journey from a user to a contributor, and eventually to a maintainer. He values every contribution, no matter how minute, as a vital piece in the puzzle of open-source project growth.

Looking Back, Moving Forward

If Maxime could impart wisdom to his younger self, it would be the importance of contributing to open-source projects as early as possible. 

His self-assurance as a contributor grew after receiving guidance from skilled engineers at his first company, an experience he believes can be immensely beneficial for budding enthusiasts in open-source communities.

Looking ahead, Maxime envisages an exciting future for DPDK, with a possible offloading of more tasks to hardware within the next three years. 

Collaboration Diversity and Unity

Maxime Coquelin’s dedication to fostering open-source communities is readily apparent in his correspondence within the DPDK community, as seen in an email thread where he discussed improving DPDK contribution processes. 

Coquelin’s belief in the power of collaboration and knowledge-sharing reflects in his continuous efforts to propose changes, receive feedback, and implement improvements to open-source projects like DPDK.

This collaborative approach is quintessential to his process and underscores the spirit of community engagement that thrives within the open-source domain.

Maxime’s dedication to the open-source community isn’t confined to coding and project management. He has also been active in several forums and events such as the DPDK Summit, where he shares his experiences and expertise with others. 

Such platforms provide an opportunity to interact with like-minded developers, driving the growth of open-source projects and the individual growth of its contributors.

His dedication to maintaining the Vhost and Virtio components of DPDK was highlighted when he proposed new co-maintainers to ensure better reviews and feature development. This again showcases his ethos of community collaboration and shared responsibility.

A Balanced Life

Outside the realm of code, Maxime is an ardent cyclist. He believes that cycling provides an ideal balance to his coding endeavors. It offers a mental break, clears his mind, and sometimes even serves as a source of inspiration, yielding fresh ideas and insights. 

His determination and perseverance are evident in his aim to complete all five Monuments of cycling races in Europe, attributes he also applies to his work as a developer.

Summary: Maxime’s Journey 

As Maxime continues to his journey with DPDK, he persistently aims to enhance the platform, making it more efficient and accessible for others. A fine example of his ongoing efforts is a massive Virtio PMD rework he proposed in early 2021. 

This dedication not only enriches the DPDK project but also strengthens the open-source community at large.

DPDK Developer Spotlight: Dmitry Kozlyuk

By Community Spotlight

The DPDK community is comprised 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: Dmitry Kozlyuk
Title: Software Developer
Employer: BIFIT

When did you start getting into programming in general? What about data plane?
It began with C++ self-study in middle school around 2007. In 2014 I got my first networking-related job in high-frequency trading (HFT), since 2016 I’m working on a DDoS protection product based on DPDK.

 How are you involved in DPDK?
I mostly work on Windows subsystem; it’s my free-time activity.

 What intrigued you about DPDK or what prompted you to want to contribute to the project?
The product I’m working at is based on DPDK. I’d always been looking up to the project and the people building it. Then I discovered that I can be of help and become one of them.

 When did you start contributing to DPDK?
February 2020. 

 What is your favorite thing about working with DPDK, and what are you most proud of? 
The impact: DPDK is used so widely that every contribution may be valuable to someone, often to many.

What has been the most challenging part of working with DPDK?
The scale and variety of environments you have to care of and test your code for.

 What advice would you give to developers (or others) interested in joining DPDK?
Read mail discussions to learn what’s going on, what people care about, what are the best practices—then share your work just as they do.

What are other things you are interested in outside of DPDK (hobbies, fun facts, etc.)?
I teach programming at university (mpei.ru). At free time, I love reading SciFi books.

DPDK Developer Spotlight: Aaron Conole

By Community Spotlight

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).