# Software-Defined Networking: Categories, Analysis, and Future Directions
## 3 Flow Rule Installation Mechanisms
### Summary and Lessons Learned
\begin{table}
\begin{tabular}{p{113.8 pt} p{113.8 pt} p{113.8 pt} p{113.8 pt} p{113.8 pt}} \hline
**Studies** & **Techniques** & **Description** & **Strengths** & **Weaknesses** \\ \hline ORPP [88; 89] & Mininet, OpenFlow & Resolves the offline and online ORPP problem for the known set of flows, which varies over time & Flow rule prioritization and optimal placement & Does not consider the forthcoming load in low priority path/flow rules \\ \hline vCRIB [90] & VM, Open vSwitch, TCAM & Provision of an abstraction for specifying and managing flow rules by automatic partitioning & Considers cost-effective resource utilization and machine performance constraints & Low scalability for dynamic flow demands \\ \hline DevoFlow [17] & NOX, TCAM, OpenFlow & Modifies OpenFlow model by breaking the coupling between network control and global visibility without imposing unnecessary costs & Provision of fine-grained flow management and simplification of OpenFlow switches & Does not reveal how to deploy the default path \\ \hline Infinite CacheFlow [91] & Ryu Controller, OpenFlow 1.0, OpenFlow vSwitch & Proposes a hardware/software hybrid switch design that relies on rule caching to provide large rule tables at low cost & Flow rule dependencies mapped to a graph, flow rule segregation, preserves the network rule semantics & Reactive flow placement Overhead and inconsistent dependencies of flow rules \\ \hline Switch Reduce [92] & NOX Controller, OpenFlow & Number of rules at any switch should not exceed the set of unique processing actions to decrease switch state & Controller intervention minimization by stateful data plane & Efficient memory utilization and deletion mechanism for useless entries is lacking \\ \hline Flow Entry MGT Scheme [93] & Mininet, Open vSwitch & Resolves the cache-missing problem and keeps recently used flow entries, which increases flow entry & Enhances the flow rule matching in flow tables of OpenFlow-enabled switches & Less efficient in networks where the behaviour and demand are not specified \\ \hline Traffic Engineering [94] & TCAM, OpenFlow, ITALYNET & Proposes a flow rule multiplexing approach that optimizes flow rule allocation and traffic engineering & Enhances QoS & Considers only identical flow rules that may not be semantically streamlined \\ \hline DomainFlow [95] & Virtual extensible LAN, TCAM, VMware vCloud & Prevents a flow-level control- and granularity-based mechanism in ether switches by using OpenFlow protocol & Exact match rule mechanism supports granular security processing & Only supports limited flow rules and fixed number of switches \\ \hline Source Flow [96] & TCAM, OpenFlow, Open vSwitch & Handles many flows without affecting flow granularity & Offers a comprehensive mechanism for scalability & Synchronization problem \\ \hline DIFANE [102] & NOX, OpenFlow Switch, TCAM & Load balances the functionalities between network switches and controller & Enhances the SDN scalability and decreases the controller load & Increases load at switches and under-utilizes the controller \\ \hline Efficient flow rule installation & Network performance, QoS and security increases & Detects the network reachability change and computes reconfiguration & Supports resiliency & Introduces end-to-end delay due to policy composition and version comparison \\ \hline \end{tabular}
\end{table} 
Table 2: Summary of flow rules installation mechanisms. In [97], a proactive flow rules installation approach is proposed for efficient communication in the Internet of things (IoT), which resolves the problem of flow installation delay and congestion due to packet-in messages. DIFANE [102] proposes a mechanism of relaxing the control plane by sharing control plane tasks with network switches. For this purpose, the controller delegates the flow rules to some of the network switches that are called authority switches. These switches give the flow rules to the other switches for a specific path. In this way, entire-network communication becomes possible.