A CPI (Application Controller Plane Interface)
The Application Controller Plane Interface (CPI) is a network architecture component that provides a standardized interface between the controller plane and application plane of a network. The controller plane is responsible for managing the network and making decisions about how to forward data, while the application plane is where user applications are deployed. The CPI acts as a bridge between these two planes, allowing applications to interact with the network controller and influence its behavior.
The CPI was introduced as part of the Software Defined Networking (SDN) architecture, which separates the control plane and data plane in a network. This separation enables network administrators to manage network traffic more effectively and make changes to the network topology without having to reconfigure each individual network device. Instead, the controller plane can be used to manage the network as a whole, while the data plane is responsible for forwarding traffic.
The CPI is a critical component of SDN because it enables applications to communicate with the network controller. This communication occurs through a standard set of application programming interfaces (APIs) that are provided by the CPI. These APIs provide a standardized way for applications to interact with the controller plane, regardless of the specific controller implementation.
One key benefit of the CPI is that it enables network administrators to deploy new network services quickly and easily. Because the CPI provides a standard interface, applications can be developed and deployed independently of the specific network controller being used. This allows network administrators to choose the best controller for their specific needs without having to worry about application compatibility.
Another benefit of the CPI is that it provides a level of abstraction between the application and network layers. This abstraction enables applications to interact with the network in a way that is independent of the specific hardware or software being used. This is particularly important in complex networks where there may be multiple types of network devices and software components.
The CPI is also designed to be extensible, which means that it can be customized to meet the specific needs of a network. This is achieved through the use of plugins, which can be used to add new functionality to the CPI. For example, a plugin could be developed to provide a new type of network service, or to enhance the security features of the network.
To use the CPI, applications must be developed using the appropriate APIs. These APIs are typically provided as part of an SDK (Software Development Kit), which enables developers to create custom applications that can interact with the network controller. The SDK typically includes documentation, sample code, and other resources to help developers get started.
One potential limitation of the CPI is that it requires a significant level of coordination between the application and network layers. This can be challenging in large, complex networks where there are many different types of applications and network devices. To address this issue, some network architectures use a hierarchical approach to manage the network, with multiple controllers at different levels of the network. This enables applications to interact with the appropriate controller without having to coordinate with the entire network.
In conclusion, the Application Controller Plane Interface (CPI) is a critical component of Software Defined Networking (SDN) architecture. It provides a standardized interface between the application and controller planes of a network, enabling applications to interact with the network controller and influence its behavior. The CPI is designed to be extensible, enabling network administrators to customize the interface to meet the specific needs of their network. While there are some challenges associated with using the CPI, it is a valuable tool for managing complex networks and deploying new network services quickly and easily.