![controlplane vs dataplane controlplane vs dataplane](https://i0.wp.com/ipwithease.com/wp-content/uploads/2015/05/CONTROL-PLANE-VS-DATA-PLANE.jpg)
This is possible because the receive function will not be invoked in parallel on different logical cores to work on the same target object.įigure 1. The benefit of this design is that all the functions of the Ethernet Device API exported by a PMD are lock-free functions.
Controlplane vs dataplane driver#
Rules for Polling Queues Can multiple cores poll one RX queue simultaneously?īy design, the receive function of a poll mode driver (PMD) cannot be invoked in parallel on multiple logical cores, to poll the same RX queue (of the same port). What are the boundaries that DPDK controls and that the application must manage to ensure synchronization?.What are the core assumptions DPDK makes in terms of concurrency?.We will look at that and refer to pointers available in DPDK documentation and source code.īefore we get into these details, let’s step back and look at the big picture: The other part is synchronizing with data plane applications that are running, that is, waiting for a resource to be available, so that APIs to reconfigure can be called. Please note that this is only part of the story. So, when you use an API that does a lightweight initialization, which parameters can you expect to be persistent across the operation, and which parameters can you not assume will remain the same? This is very useful information to know in order to correctly change parameters during run time. This may be a lightweight initialization compared to the previous case of heavyweight initialization. Scenario 2: Parameter changeĪssume you are not changing any hardware during runtime, but you do want to change a global parameter-say maximum transmission unit (MTU). If the resource being released is used by multiple cores, we need to request an acknowledgement handshake from each core in use, indicating that they are all finished with the resource and it can be safely released. Applications can be using a single or multiple cores. Releasing resources requires coordination with the user space applications using those resources. If a change of hardware device requires a release of the instance of the device that was removed and creation of a device instance for the new one, you must coordinate release of threads that are still accessing the data structures of the original instance. Pull out a transceiver, say 10 GB, and insert a completely different one, say 1 GB.Pull out a transceiver and insert it again-during run time.In a multiple core server with as many as 72 Logical cores (lcores) and multiple NIC ports performing packet processing in parallel, how do you synchronize the control plane operations with the data plane? What do you need to understand in order to play by DPDK rules of the game? Actions that require synchronization A network interface card (NIC) port configuration change.Here, we illustrate two simple run-time scenarios: Simple Scenarios-Data Plane and Control Plane InteractionsĮvery product or appliance has its own share of data plane and control plane functionality. The purpose of this article is to describe some simple multiplane scenarios. In a real-life scenario, it is necessary to integrate the data plane with the control and management plane. Many developers and customers are under the impression that Data Plane Development Kit (DPDK) documentation and sample applications include only data plane applications.