OpenFlow Data Plane Abstraction (OF-DPA) API Guide and Reference Manual
OF-DPA Software Overview

OpenFlow Data Plane Abstraction (OF-DPA) is an application software component that implements an adaptation layer between OpenFlow and the Broadcom Silicon SDK. OF-DPA enables scalable implementation of OpenFlow 1.3 on Broadcom switch devices. Figure 1 shows the OF-DPA software component and its relation to other OpenFlow system components.

Figure 1

In Figure 1, user applications obtain services from an OpenFlow Controller via a northbound API. The controller's northbound API enables applications to communicate with and control one or more OpenFlow switches. The controller maintains a channel with each OpenFlow switch, over which it exchanges OpenFlow protocol messages. At the switches, OpenFlow agents maintain their end of the channel, process received OpenFlow protocol messages and send OpenFlow messages in response to local events. OF-DPA fills a key role in this architecture by providing the OF-DPA API to the agent. This API represents hardware tables to the agent in terms of OpenFlow constructs such as flow tables, the group table, and ports. As OF-DPA maintains all of the state that matches the hardware tables to OpenFlow, the agent is expected to do a relatively straightforward and stateless translation of OpenFlow messages into OF-DPA API calls and vice versa. The application writer programs to the description of the OF-DPA Abstract Switch. Refer to the "OF-DPA Architecture Specification" document for details of the abstract switch model implemented by OF-DPA software.

OF-DPA Software Architecture

Figure 2 shows a block diagram representation of the various components of OF-DPA.

Figure 2

Operational Modes

OF-DPA software can be built and used in two modes:

Interprocess communication overhead results in a performance difference between these two modes. Applications implemented using the single process mode are able to invoke OF-DPA APIs at a higher rate than when using the interprocess mode. Interprocess mode is useful for experimenting with the OF-DPA software. An example of this is using the sample client applications included in the OF-DPA software package to configure the pipeline for test scenarios. Applications designed to configure the switch for network operation, like an OpenFlow agent, should use the single process mode.

The interprocess interface can also be available when running in single process mode.

Initialization Overview

The system initializes in the following sequence:

The RPC server task is started after system initialization. This task listens on a socket for RPC messages from client applications.

Steady State Overview

In steady state, a few background threads like the SDK counter, packet rx and datapath threads run periodically. All other processing is triggered only on API invocations.

SDK Configuration and Setup

OF-DPA software is built on top of the BCM APIs and data structures. A reference integration of OF-DPA software with the SDK is provided as part of the OF-DPA software release. The reference integration builds the SDK in Linux 'User' mode. SDK initialization that is needed for OF-DPA software is done as part of the OF-DPA initialization. Customers can change the OF-DPA SDK integration to fit their environment.