## 4 OpenFlow Flow Table Memory Management
### Timeout and Eviction Mechanisms
\begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Related Work**} & **Controller** & \multirow{2}{*}{**Method**} & \multirow{2}{*}{**Rule Eviction**} & **Timeout Mode** \\  & **Placement** & & & **Mode** \\  & **Mode** & & & \\ \hline \multirow{3}{*}{[PERSON] et al. [47]} & \multirow{3}{*}{Reactive} & Traffic feature-based idle timeout lognormal distribution & X & Idle \\  & & & & \\ \hline \multirow{3}{*}{[PERSON] et al. [48]} & \multirow{3}{*}{Proactive} & Bloom filter & Data logging using multiple bloom filters (MBF) & \multirow{3}{*}{Idle} \\  & & & & multiple bloom filters (MBF) & \\ \hline \multirow{3}{*}{[PERSON] et al. [49]} & \multirow{3}{*}{Reactive} & Combine flow table and controller (CFC) & Idle timeout & Idle \\  & & & & eviction \\ \hline \multirow{3}{*}{[PERSON] et al. [50]} & \multirow{3}{*}{Reactive} & Flow table adaptive timeout algorithm & X & Idle \\ \hline \multirow{3}{*}{[PERSON] et al. [51]} & \multirow{3}{*}{Reactive} & Lognormal distribution using probability & Random & Idle \\ \hline \multirow{3}{*}{[PERSON] et al. [20]} & \multirow{3}{*}{Proactive} & Flowtable vacancy and mathematical model & Least recently used (LRU) & Idle \\ \hline \multirow{3}{*}{[PERSON] et al. [52]} & \multirow{3}{*}{Reactive} & Software defines adaptive routing (STAR) & LRU & Idle \\ \hline \multirow{3}{*}{[PERSON] et al. [57]} & \multirow{3}{*}{Reactive} & Dynamic hard timeout allocation & LRU & Hard timeout \\ \hline \multirow{3}{*}{[PERSON] et al. [53]} & \multirow{3}{*}{Proactive} & Timeout calculation: idle timeout with two stage-table table & Controller & \multirow{3}{*}{Idle} \\  & & & randomly evict flow with no match & \\ \hline \multirow{3}{*}{TimeoutX [46]} & \multirow{3}{*}{Reactive} & Composed of 3 modules: history flow information base (HFIB), timeout selection algorithm (TSA), and EIMC & Entry installation and management component (EIMC) & \multirow{3}{*}{hard} \\ \hline \multirow{3}{*}{IHTA [54]} & Hybrid (reactive and proactive) & Dynamic idle and hard timeout based on traffic pattern to reduce overhead & Based on flow packet count & Idle and hard \\  & & & packet count & timeout \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Comparison of proposed flow timeout mechanism. Figure 8: Example of traffic flow with variability of inter arrival time. [PERSON] et al. [47] noted the factors that influence setting a proper timeout such as packet inter-arrival time (PIAT) according to flow state, controller capacity, and current flowable utilization. Importantly, setting proper idle timeout should be based on the packet inter-arrival time and can effectively improve the efficiency of the system. In this way, the work of [PERSON] et al. [47] set a TF-idle timeout scheme that dynamically set the flow entry lifecycle according to real-time network traffic. This is achieved by estimating traffic feature via packet arrival distribution and interval in a logarithmic normal distribution. Since it is observed that general networks change over time with variability in flow size. The method required collecting statistical distribution of packet arrival time. Consequently, the cost of memory in the controller is huge. Similarly, flow removal should follow a certain procedure to prevent evicting important flows. TF-idle only focuses on setting timeout without considering flow eviction. It is important to also consider the flow eviction together with the timeout method. This is necessary to avoid removing an entry that may be needed in the near future. Alternatively, instead of relying entirely on the flow expiry period, [PERSON] et al. [48] proposed to efficiently manage the flow entries in the flow table through intelligent eviction mechanism based on data logging using multiple bloom filters (MBF) data structure to decide flow entry removal. Although the approach made a step further to remove the unused entries.