Control-plane user-supplied?

Hello everyone,

I hope the question hasn’t already been asked (I didn’t see it) but in case it has, apologies in advance.

I’m just starting with P4 and its concepts, while reading the specification and then different sets of slides, I noticed that the P4 Target Programming scheme had changed.

Here from the P4 Tutorial slides from the Github :

This scheme is different from the one in the latest P4 specification document :

Indeed, Control Plane no longer seems to need to be supplied by the user. In addition, the compiler now generates an API that is actually P4Runtime? But, correct me if I’m wrong, if the compiler is provided by the hardware vendor, what about the Control Plane, since it uses the p4runtime library?

My question is then about the Control Plane. Does he still have to be provided by the User ? I did the exercices about P4Runtime but this part of “programming chain” is still a bit hazy for me.

I understood the role of Control Plane thanks to this post in particular : What is the role of Control Plane in the concept of P4-programming. I’m also checking the incredible document A Survey on Data Plane Programming with P4: Fundamentals, Advances, and Applied Research, but since it’s dated from 2021, it is the same scheme as the one in the P4 Tutorial slides.

But could you shed some light on this point and give me a comparison with real hardware that we’d buy? Should the Control Plane now always be developed by the user? And if so, why the change?

I hope I’m making myself clear.

Thank you very much in advance.


Hi @ncml

The compiler is provided by the vendor but the control plane (within the device or a SDN controller) is not provided.
More in detail the P4Runtime is the “protocol”/Inteface provided by P4 for filling, retreiving the informations from the P4 pipeline installed in the device.

Since the data plane is programmable so you have to develop a “tailored” control plane application/s to manage the pipeline. There are some open source SDN controllers , such as:

that allow you to create your control application/s based on your P4 application.

1 Like