OpenFlow Data Plane Abstraction (OF-DPA) API Guide and Reference Manual
Comparative Analysis Example

Consider the following simple scenario:

SimpleScenario.jpg

To avoid congestion at the egress, the ingress traffic needs to be distributed and load balanced across a set of egress ports. Table 1 illustrates this scenario across four ports.

Environment No of tables Configuration Total number of flows required
OpenFlow 1.0
1
  • L4 source ports, the load balancing factor
  • Will need 1 flow entry for each micro flow to load balance the traffic
  • Load balancing algorithm needs to run on the Controller
4K
OF-DPA + OpenFlow 1.3
7
  • 4 entries in the VLAN Flow table to add the 4 ingress ports in the VLAN of the ingress traffic
  • 1 entry in the Termination MAC Flow table that configures the ingress traffic with the router MAC and VLAN
  • 1 ECMP group with 4 next hops (and the associated L2 Interface, L3 Unicast groups). This leverages ECMP capabilities of the hardware and the Controller is offloaded with this task
  • 1 L3 Routing Table Flow entry to match the IP destination and use the ECMP group as the next hop for the matching traffic.
6

As is evident from the above table, it takes six flow entries with OF-DPA-OF1.3 compared to 4K entries in an OpenFlow 1.0 scenario.

As a step further, consider a scenario where the ECMP hashing leads to an uneven load distribution. This would result in few of the ECMP next hop egress ports getting congested while the rest are underutilized. The ACL Policy Flow table comes to the rescue which can be used to engineer and redirect the identified ingress traffic to underutilized egress ports. A flow entry for each of these elephant flows would need to be installed in the ACL Policy Flow table.