[dpdk-users] DPDK Virtual Test location

Mathieu Devos mathieu.devos at intopalo.com
Wed Sep 12 09:25:33 CEST 2018


After attempting several approaching, I'm starting to run out of ideas to
approach this issue.
My goal is to create a straightforward testing platform for our
DKDP-enabled application.

We can run the test in Vagrant manually on our own computers, as Vagrant
has the option (with libvirt at least) to emulate new NICs. Through the use
of libvirt we even have the option of selecting on which domain, bus, slot
& function we place this new virtual NIC.
Since DPDK just thinks this is a real NIC, it can safely use it, and we can
run our tests. Which is great, well, kinda.

The issue is that Vagrant has a history of being a tad bit very difficult
to work with. As such we keep running into the "it works on my
computer"-issue, something which I'm tasked with solving (DevOps fun, my
understand of DPDK is extremely limited).
Now I've taken a look at containers, but since they use exact kernel from
the host, this is not an option, virtual machines such as EC2, Nova
Compute, ... all seem to be having their own set of limitations.
The problems continue as we would like to set up a VM with Application A &
DPDK, link that to another VM with Application B & DPDK. We would then also
need to bridge the network in between these two VMs.

Let's say for the sake of simplicity the following setup:

+-----------+    +---------+
| VM1       |    | VM2     |
| Encrypt   |    | Decrypt |
|    DPDK  >>---->> DPDK   |
+-|---------+    +-------|-+
  |                      |

To test the application overall setup, we would just push in packets with
any program into VM1, this will use our "whatever" encryption, send them to
VM2, which will decrypt them. At the end we read them back out, and we
should see the same packages as we sent in.

I'm aware that speed will be very low, since this all virtual, and we're
not using any of the hardware here. The test isn't resolved around speed,
it's to test if we can set up that encryption software together with DPDK

My overall question, is there any cloud / server / DevOps setup, or
toolkit, out there that you would recommend to create these kind of setups
in an automated way.
Ideally, when we write some code, it triggers a build server, builds the
code for both VMs. Upon completion, spawn the VMs, create the links, run
the test on the link, report output, and destroy the VMs + network links

I'm currently at a loss to even figure out which direction to look in first.

Any help or suggestions would be much appreciated.

Best regards,

*M*athieu *D*evos
M.Sc.(Tech) - Software Developer
+358 45 787 48074

More information about the users mailing list