Author: Craig Stevens
The following diagram shows the high-level architecture of a programmable fabric.
The programmable fabric can be broken down into two main layers, the Control Plane and the Data Plane.
Control Plane Layer
The control plane layer is responsible for configuring and managing the data plane and is normally more centrally located i.e. one per PoP or region.
The control plane is normally divided into three separate domains:
Fabric, Telemetry & Configuration and Management to allow them to scale independently, however they could be implemented in one software controller i.e. for a small-scale implementation.
1. Fabric Controller
The Fabric Controller controls the loading and programming of the data plane pipeline using the P4 Runtime interface to communicate with the data plane’s programmable forwarding engine as shown in the diagram below.
There will be a number of controller applications or “network functions” that talk to the fabric controller to control various aspects of the programmable fabric.
The Fabric Management applications manage the underlying network fabric setup and configuration. It can also be thought of as a number of virtualised switch and router network functions that provide the underlying network fabric using the programmable fabric.
The Fabric Management applications rely on user plane functionality being implemented in the P4 pipeline in the PFE (see the next month’s blog “Virtualised Fabric Management” for more details on the Fabric Management).
The NF control plane uses a CUPS (Control User Plane Separation) methodology to implement the control plane portion of a Network Function while the user plane functions are pushed down into the “Data Plane node” as described in this document.