Taming the Wildcards: Towards Dependency-free Rule Caching with FreeCache

Wildcard rules are implemented in various important networking scenarios, including QoS, firewall, access control, and network traffic monitoring and analysis. However, there are cross-rule dependencies between wildcard rules, which both increase significant overhead and affect the semantic correctness of packet classification when caching rules. Considerable efforts have been made to mitigate the impacts of the dependency issue in rule caching, but it is still a bottleneck for cache systems. In this paper, we show how to give applications the flexibility of completely dependency-free wildcard rule caching by decoupling the cached rules and their dependent rules. Our FreeCache scheme has wide applicability to packet classification devices with wildcard rule caching. We validate the effectiveness of FreeCache through two respects: (1) Implementing various cache algorithms (e.g., LSTM) and cache replacement algorithms (e.g., ARC, LIRS) that are difficult to use in dependency-bound situations in the cache system with FreeCache. (2) Developing a prototype in a Software-Defined Network (SDN), where hybrid OpenFlow switches use TCAM as cache and RAM as auxiliary memory. Our experimental results reveal that FreeCache improves the cache performance by up to 60.88% in the offline scenario. FreeCache also offers the promise of applying any existing caching algorithms to wildcard rule caching while guaranteeing the properties of semantic correctness and equivalence.

[1]  Zhi-Li Zhang,et al.  DeepCache: A Deep Learning Based Framework For Content Caching , 2018, NetAI@SIGCOMM.

[2]  Glencora Borradaile,et al.  The knapsack problem with neighbour constraints , 2012, J. Discrete Algorithms.

[3]  Jin Zhao,et al.  A Tale of Two (Flow) Tables: Demystifying Rule Caching in OpenFlow Switches , 2019, ICPP.

[4]  Song Jiang,et al.  LIRS: an efficient low inter-reference recency set replacement policy to improve buffer cache performance , 2002, SIGMETRICS '02.

[5]  Bo Yan,et al.  BigMaC: Reactive Network-Wide Policy Caching for SDN Policy Enforcement , 2018, IEEE Journal on Selected Areas in Communications.

[6]  Peng Zhang,et al.  CORA: Conflict Razor for Policies in SDN , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications.

[7]  Bo Yang,et al.  RuleTris: Minimizing Rule Update Latency for TCAM-Based SDN Switches , 2016, 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS).

[8]  Patrick Th. Eugster,et al.  SAX-PAC (Scalable And eXpressive PAcket Classification) , 2014, SIGCOMM.

[9]  Martín Casado,et al.  The Design and Implementation of Open vSwitch , 2015, NSDI.

[10]  Venkatachary Srinivasan,et al.  Packet classification using tuple space search , 1999, SIGCOMM '99.

[11]  Timothy Sherwood,et al.  Ternary CAM Power and Delay Model: Extensions and Uses , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[12]  Jonathan S. Turner,et al.  ClassBench: A Packet Classification Benchmark , 2005, IEEE/ACM Transactions on Networking.

[13]  David Walker,et al.  CacheFlow: Dependency-Aware Rule-Caching for Software-Defined Networks , 2016, SOSR.

[14]  Jang-Ping Sheu,et al.  Wildcard Rules Caching and Cache Replacement Algorithms in Software-Defined Networking , 2016, IEEE Transactions on Network and Service Management.

[15]  Nimrod Megiddo,et al.  ARC: A Self-Tuning, Low Overhead Replacement Cache , 2003, FAST.

[16]  Jie Wu,et al.  Approximation Algorithms for Dependency-Aware Rule-Caching in Software-Defined Networks , 2018, 2018 IEEE Global Communications Conference (GLOBECOM).

[17]  Dario Rossi,et al.  TupleMerge: Fast Software Packet Processing for Online Packet Classification , 2019, IEEE/ACM Transactions on Networking.

[18]  Sang Lyul Min,et al.  LRFU: A Spectrum of Policies that Subsumes the Least Recently Used and Least Frequently Used Policies , 2001, IEEE Trans. Computers.

[19]  T. N. Vijaykumar,et al.  EffiCuts: optimizing packet classification for memory and throughput , 2010, SIGCOMM '10.

[20]  Bo Yan,et al.  Adaptive Wildcard Rule Cache Management for Software-Defined Networks , 2018, IEEE/ACM Transactions on Networking.

[21]  Xin Jin,et al.  Neural packet classification , 2019, SIGCOMM.

[22]  Mykhailo Klymash,et al.  Performance Analysis of SDN Switches with Hardware and Software Flow Tables , 2016, VALUETOOLS.

[23]  Xin Wang,et al.  FastRule: Efficient Flow Entry Updates for TCAM-Based OpenFlow Switches , 2019, IEEE Journal on Selected Areas in Communications.