A Tale of Two (Flow) Tables: Demystifying Rule Caching in OpenFlow Switches

Software Defined Networking (SDN) enables flexible flow control by deploying fine-grained rules in OpenFlow switches. Modern commodity switches usually use TCAM to store these rules and perform high-speed parallel lookups. Though efficient, the TCAM capacity is limited because TCAM is expensive in cost and power-hungry. The explosive growth in the number of rules has exacerbated the limitation of TCAM. There have been considerable efforts in implementing hybrid flow tables with both TCAM and RAM, where the high-speed TCAM is regarded as a cache to store the most popular rules and the cheap RAM is used to handle cache miss. The primary challenges for designing hybrid TCAM/RAM flow tables lie in how to improve cache hit rate and how to handle wildcard rule dependency when allocating rules between TCAM and RAM. In this paper, we present the design and evaluation of CuCa, a practical and efficient rule caching scheme for hybrid switches. Different from existing schemes, CuCa offers both offline and online algorithms for rule caching, corresponding to the proactive and reactive approaches to OpenFlow rule installation. By designing a two-stage-cache architecture in TCAM, CuCa can handle rule dependency efficiently and provide remarkable performance improvements. Simulation and real-world experiment results reveal that CuCa improves average TCAM hit rate by 38.7% compared to state-of-the-art schemes and by over 33% compared to the default caching algorithm of a commodity OpenFlow switch.

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

[2]  Xianfeng Li,et al.  CRAFT: A Cache Reduction Architecture for Flow Tables in Software-Defined Networks , 2017, 2017 IEEE Symposium on Computers and Communications (ISCC).

[3]  Nick McKeown,et al.  OpenFlow: enabling innovation in campus networks , 2008, CCRV.

[4]  Ori Rottenstreich,et al.  Optimal Rule Caching and Lossy Compression for Longest Prefix Matching , 2017, IEEE/ACM Transactions on Networking.

[5]  Weifa Liang,et al.  Cost Minimization for Rule Caching in Software Defined Networking , 2016, IEEE Transactions on Parallel and Distributed Systems.

[6]  Thierry Turletti,et al.  Rules Placement Problem in OpenFlow Networks: A Survey , 2016, IEEE Communications Surveys & Tutorials.

[7]  Kuochen Wang,et al.  An In-Switch Rule Caching and Replacement Algorithm in Software Defined Networks , 2018, 2018 IEEE International Conference on Communications (ICC).

[8]  David Walker,et al.  Optimizing the "one big switch" abstraction in software-defined networks , 2013, CoNEXT.

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

[10]  Isaac Keslassy,et al.  Palette: Distributing tables in software-defined networks , 2013, 2013 Proceedings IEEE INFOCOM.

[11]  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).

[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]  Bo Yan,et al.  CAB: a reactive wildcard rule caching system for software-defined networks , 2014, HotSDN.

[15]  Zhiping Jia,et al.  Unified nvTCAM and sTCAM architecture for improving packet matching performance , 2017, LCTES.

[16]  Yaoqing Liu,et al.  PFCA: a programmable FIB caching architecture , 2018, ANCS.

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

[18]  Yu-Chieh Cheng,et al.  Packet Classification Using Dynamically Generated Decision Trees , 2015, IEEE Transactions on Computers.

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

[20]  Eric Torng,et al.  Bit Weaving: A Non-Prefix Approach to Compressing Packet Classifiers in TCAMs , 2012, IEEE/ACM Transactions on Networking.

[21]  Eric Torng,et al.  Packet classification using binary Content Addressable Memory , 2014, IEEE INFOCOM 2014 - IEEE Conference on Computer Communications.