## 5 Design Choices for OpenFlow-Based SDN
### Management of Flow Entries: Proactive vs. Reactive
That means that if the controller is overloaded or the communication channel fails, the data plane is still fully functional. The problem with limited TCAM and proactive flow management is a special concern in carrier networks. They mostly use the Border Gateway Protocol (BGP), which has significantly high state requirements [79]. Thus, analyses of the feasibility and practicability of SDN in that context with regard to different flow management approaches and state-heavy protocols are relevant, and viable solutions are needed. The authors of [80] use a reactive approach to SDN and BGP. They leverage the knowledge of the traffic distribution that they have measured on real data to offload flows with a high traffic portion, called heavy hitters, to the forwarding plane. Entries for flows with low packet frequency are not held in the flow table when space is not available. Those flow entries are kept in the controller and packets belonging to low-frequency flows are sent from the switch to the controller, which has the complete forwarding knowledge of all flows. The proposed SDN software router is presented in [81]. Other approaches try to reduce the flow table size. For example, source routing techniques can be leveraged to significantly reduce the number of flow table entries, as shown by [PERSON] _et al._[82]. In their source routing method, the ingress router encodes the path in the form of interface numbers in the packet header. The routers on the path forward the packet according to the interface number of the path in the header. Since packets of source-routed flows contain the path in their headers, the switches on the path do not require a flow table entry for them. However, their method requires some minor changes to the OpenFlow protocol to support the source routing. Source routing methods for SDN are also discussed in the IRTF [83]. The forwarding state for BGP is also a concern in traditional networks without the challenging limitations of forwarding tables. Various approaches to solve this problem exist today. The authors of [84] try to improve the scaling of IP routers using tunneling and virtual prefixes for global routing. Virtual prefixes are selected in such a way that prefixes are aggregated efficiently. Their solution requires a mapping system to employ the virtual prefixes. [PERSON] _et al._[85] have a similar solution, where they remove parts of the global routing table with virtual prefixes. They show that this technique can reduce the load on BGP routers. The idea of virtual prefixes is currently standardized in the IETF [86]. Distributed hash tables can also be used to effectively reduce the size of BGP tables, as shown in [87]. Other methodologies are based on the idea of efficient compression of the forwarding information state, as shown in [88]. The authors use compression algorithms for IP prefix trees in such a way that lookups and updates of the FIB can be done in a timely manner. However, match fields in OpenFlow may contain wildcards and, therefore, have more freedom with regard to aggregation than prefixes in IP routing tables. Appropriate methodologies must be developed and tested to reduce the state in OpenFlow switches.