## 6 Performance of OpenFlow-Based SDNs  
In the following, we discuss the scalability and feasibility aspects of OpenFlow-based networks and OpenFlow-compliant switches. Several works discuss data plane performance issues that arise with fine-grained flow control, limited flow table sizes and limited sizes of OpenFlow counters that can be used to implement various operations and management (OAM) features. To improve scalability issues with flow counters, [PERSON] and Congdon [92] increased the performance by proposing alternate switch designs that implement software-defined counters on a generic CPU within the switch. As a side effect, this design allows flow tables with more flow table entries. In reference [93], the authors improved the performance of switches by differentiating between coarse-grained and fine-grained flows and by managing both flow classes independently. They showed a significant increase in switching performance and the possibility of handling more flows within a switch, while being fully compliant with OpenFlow 1.0. Using the CPU as a co-processing unit in switches can improve the flexibility and switching performance of OpenFlow devices [94]. The results of this work are validated using a prototype implementation, where the switch design is modified by adding a general purpose CPU interconnected to an application-specific integrated circuit (ASIC) with an internal high-bandwidth link. Source routing techniques are applied to SDN networks in [95]. The forwarding path is encoded in the packets to significantly reduce the number of required flow table entries. Finally, the authors of [96] discuss the feasibility of OpenFlow on Linux-based systems and analyze the influence of small packets on the forwarding performance. Other approaches aim to minimize the number of entries in TCAM by aggregating the matches for entries with the same action. This is a common procedure on prefix-based matches, which can be optimally solved in polynomial time, as shown in [97]. The compression of wildcard entries is more complex. The \"TCAM Razor\", proposed in [98], is a heuristic for the compression of wildcard matches. A set of TCAM entries is converted into a smaller semantically equivalent set of entries. In this work, they also discuss the compression of multi-dimensional entries, as found in ACLs and OpenFlow-based match rules. They show significant compression ratios compared to prefix-based aggregation and evaluate the runtime. The authors emphasize that their proposal does not require any modifications to existing packet classification systems. Another method to compress wildcard matches is presented in [99]. The authors provide a compression heuristic that has a polynomial run time with regard to the amount of TCAM rules. The method is based on bit weaving, _i.e._, two rules are aggregated if they have the same action and differ in only one bit. The authors also consider incremental updates in their method and compare their solution with other compression methods, such as the TCAM Razor. The bit-weaving method improves the runtime significantly, but decreases the compression efficiency. A different approach for wildcard aggregation with TCAM is proposed in [100]. The authors perform rule-set minimization based on two-level logic minimization. The algorithm is based on exact logic function minimization algorithms, which are applied in the process of creating large integrated circuits. The authors provide an exact solution for the minimization problem, as well as a number of heuristics and show higher compression ratios with their methods compared to others. However, the proposed method has scalability problems with the number of TCAM entries that must be aggregated. The \"Doing It Fast And Easy\" (DIFANE) [101] approach examines the scalability issues that arise with OpenFlow in large networks and with many fine-grained flow entries.