User Plane Vs Control Plane

This is my last post of the year 2021 I guess. I often come across this question myself if I'm working in control plane or data plane. 

Let's discuss this deeply here. These planes are integral components of the networking architecture.

Data Plane 

  1. In terms of Code Size & Processing Requirements, It doesn't deal with much code but it requires a lot of processing power.
  2. This will be implemented with ASIC, FPGA, Co-processor, or may be just another CPU.
  3. Data plane is sometimes known as User Plane, Forwarding Plane, Carrier Plane. 

Control Plane 

  1. It deals with more code but it requires less processing power. 
  2. This will be certainly implemented with CPU.




Moreover,  the different requirements of data plane and control plane tasks are often addressed by what is called a fast path-slow path design. In this type of design, as packets enter the networking device, their destination address and port are examined at the prerouting chain, and based on that examination, they are sent on either the "slow path" or the "fast path" internally. Packets that need minimal or normal processing take the fast path, and packets that need unusual or complex processing take the slow path. Fast path packets correspond to data plane tasks, while slow path packets correspond to control plane tasks. Once they have been processed, packets from both the slow and fast path may leave via the same network interface. 

Read here to know more about packet processing in Linux

In Conventional networking, all three planes (data, control, user) are implemented in firmware of the routers/switches. From SDN (Software Defined Networking), the control plane is moved from network hardware to software, which enables network administrator to shape the traffic from a centralised control console with a granular level control.




In the above image till the operating system, it is User Mode. From the Device driver, it is Kernel Mode. What we do in the software is User mode. 

Kernel Mode

Firmware consists of algorithms, logic on which the entire system works to achieve the best possible result in a least amount of time. Drivers are libraries that consists of APIs that will be used to develop the actual firmware. Devices drivers are what make the board workable for developers. 

References

https://whatis.techtarget.com/

Quora

https://barrgroup.com/embedded-systems/how-to/network-processors

Comments