NetBSD TCP/IP port on DPDK using Rump framework

By Blog

Originally posted by Antti Kantee (pooka at iki.fi) on the dpdk-dev mailing list

----
Hi,

I like the opportunities that a technology like DPDK enables, and I felt 
that the availability of an open source TCP/IP stack for DPDK could make 
things even more interesting.  I've been working on a concept called the 
anykernel, where the idea is that an OS kernel should be structured in a 
fashion which allows the driver components to be run independently of a 
monolithic kernel in so-called rump kernels.  Long story short, one of 
the "byproducts" is a run-anywhere standalone version of NetBSD kernel 
TCP/IP stack, so it was a natural progression to integrate that TCP/IP 
stack with the NIC driver layer provided by DPDK.

The published code completes "stage 1: make it work".  I want to thank 
another person who wished to remain anonymous for help with the 
implementation and testing.  Next up is "stage 2: make it fast".  I 
welcome everyone to contribute ideas / use cases / code / etc. towards 
that goal.

You can find the code for plugging DPDK into the rump kernel NIC layer 
along with instructions from:

https://github.com/anttikantee/dpdk-rumptcpip

In case anyone is interested, I tested the setup with Void Linux running 
in VM using an emulated 82540 NIC (cf. my previous mail to this list) 
and the other party tested on Ubuntu using real hardware and a 82599 NIC.

cheers,
antti