P4 and DPDK instructions


I have a p4 program, that I compiled and was able to run it on bmv2, communicate with p4runtime and run some traffic as intended.

I am trying to set p4-dpdk and run my program there,
Unfortunately I am not able to understand how p4c with dpdk and then p4-dpdk target works.

Can you please guide me, or provide me with some documentation regarding the procedure?
I am not sure how bf-rt-schema and context come into play.
Also I have read the examples in the github repository, but couldn’t find how exactly the ports are defined.

I would assume that that somewhere in the procedure (most probably through p4c and context) you can define the DPDK parameters (cpu mask, queues, etc.) and also the interfaces you want to bind to the switch. Somewhat similar to how ovs-dpdk works. But I am at a loss.

Thank you very much for your help!

Hi Kesnar,

Considering that no one answered yet, I would definitely try to ask this question to devs that have recently committed in the repository or open an issue in the p4-dpdk repository if they allow questions.


Hello ederollora,

Thank you for your answer. I managed to find some of the stuff I asked above and when I have time, I will try to post the answer in case someone else might need it. I still haven’t been able to run successfully a program though, but I have already posted an issue to the repository.

Hi @kesnar ,

Yes, please. Post the answer to the questions so other developers and students can learn from it :slight_smile:


For anyone interested check these notes by Yi Tseng:

They provide a good introduction.

1 Like