TupleMerge: Fast Software Packet Processing for Online Packet Classification

Packet classification is an important part of many networking devices, such as routers and firewalls. Software-defined networking (SDN) heavily relies on online packet classification which must efficiently process two different streams: incoming packets to classify and rules to update. This rules out many offline packet classification algorithms that do not support fast updates. We propose a novel online classification algorithm, TupleMerge (TM), derived from tuple space search (TSS), the packet classifier used by Open vSwitch (OVS). TM improves upon TSS by combining hash tables which contain rules with similar characteristics. This greatly reduces classification time preserving similar performance in updates. We validate the effectiveness of TM using both simulation and deployment in a full-fledged software router, specifically within the vector packet processor (VPP). In our simulation results, which focus solely on the efficiency of the classification algorithm, we demonstrate that TM outperforms all other state of the art methods, including TSS, PartitionSort (PS), and SAX-PAC. For example, TM is 34% faster at classifying packets and 30% faster at updating rules than PS. We then experimentally evaluate TM deployed within the VPP framework comparing TM against linear search and TSS, and also against TSS within the OVS framework. This validation of deployed implementations is important as SDN frameworks have several optimizations such as caches that may minimize the influence of a classification algorithm. Our experimental results clearly validate the effectiveness of TM. VPP TM classifies packets nearly two orders of magnitude faster than VPP TSS and at least one order of magnitude faster than OVS TSS.

[1]  Pankaj Gupta,et al.  Packet Classification using Hierarchical Intelligent Cuttings , 1999 .

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

[3]  Nick McKeown,et al.  Algorithms for packet classification , 2001, IEEE Netw..

[4]  Eric Torng,et al.  A sorted partitioning approach to high-speed and fast-update OpenFlow classification , 2016, 2016 IEEE 24th International Conference on Network Protocols (ICNP).

[5]  Maciej Kuźniar,et al.  What You Need to Know About SDN Flow Tables , 2015, PAM.

[6]  Patrick Th. Eugster,et al.  Exploiting Order Independence for Scalable and Expressive Packet Classification , 2016, IEEE/ACM Transactions on Networking.

[7]  Eric Torng,et al.  ByteCuts: Fast Packet Classification by Interior Bit Extraction , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications.

[8]  Jirí Matousek,et al.  ClassBench-ng: Recasting ClassBench after a Decade of Network Evolution , 2017, 2017 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[9]  Leonardo Linguaglossa,et al.  High-Speed Software Data Plane via Vectorized Packet Processing , 2018, IEEE Communications Magazine.

[10]  Daniel Raumer,et al.  MoonGen: A Scriptable High-Speed Packet Generator , 2014, Internet Measurement Conference.

[11]  Seungjoon Lee,et al.  Network function virtualization: Challenges and opportunities for innovations , 2015, IEEE Communications Magazine.

[12]  Baohua Yang,et al.  Packet Classification Algorithms: From Theory to Practice , 2009, IEEE INFOCOM 2009.

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

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

[15]  David Walker,et al.  Incremental consistent updates , 2013, HotSDN '13.

[16]  David E. Taylor Survey and taxonomy of packet classification techniques , 2005, CSUR.

[17]  Huan Liu,et al.  Efficient mapping of range classifier into ternary-CAM , 2002, Proceedings 10th Symposium on High Performance Interconnects.

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

[19]  Guy Pujolle,et al.  Fast Packet Processing: A Survey , 2018, IEEE Communications Surveys & Tutorials.

[20]  Haoyu Song,et al.  Fast hash table lookup using extended bloom filter: an aid to network processing , 2005, SIGCOMM '05.

[21]  Xianfeng Li,et al.  CutSplit: A Decision-Tree Combining Cutting and Splitting for Scalable Packet Classification , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications.

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

[23]  Martín Casado,et al.  Extending Networking into the Virtualization Layer , 2009, HotNets.

[24]  Eric Torng,et al.  TupleMerge: Building Online Packet Classifiers by Omitting Bits , 2017, 2017 26th International Conference on Computer Communication and Networks (ICCCN).

[25]  George Varghese,et al.  Packet classification using multidimensional cutting , 2003, SIGCOMM '03.

[26]  Gaogang Xie,et al.  Meta-algorithms for Software-Based Packet Classification , 2014, 2014 IEEE 22nd International Conference on Network Protocols.

[27]  Aniruddha S. Gokhale,et al.  Software-Defined Networking: Challenges and research opportunities for Future Internet , 2014, Comput. Networks.

[28]  Richard Deal Cisco Router Firewall Security , 2004 .