Scaling by Learning: Accelerating Open vSwitch Data Path With Neural Networks

Open vSwitch (OVS) is a widely used open-source virtual switch implementation. In this work, we seek to scale up OVS to support hundreds of thousands of OpenFlow rules by accelerating the core component of its data-path - the packet classification mechanism. To do so we use NuevoMatch, a recent algorithm that uses neural network inference to match packets, and promises significant scalability and performance benefits. We overcome the primary algorithmic challenge of the slow training rate in the vanilla NuevoMatch, speeding it up by over three orders of magnitude. This improvement enables two design options to integrate NuevoMatch with OVS: (1) as an extra caching layer in front of OVS’s megaflow cache, and (2) using it to completely replace OVS’s data-path while performing classification directly on OpenFlow rules, and obviating control-path upcalls. Comprehensive evaluation on real-world packet traces and ClassBench rules demonstrates geometric mean speedups of <inline-formula> <tex-math notation="LaTeX">$1.9\times $ </tex-math></inline-formula> and <inline-formula> <tex-math notation="LaTeX">$12.3\times $ </tex-math></inline-formula> for the first and second designs, respectively, for 500K rules, with the latter also supporting up to 60K OpenFlow rule updates/second, by far exceeding the original OVS.

[1]  A. Finamore,et al.  Accelerating Deep Learning Classification with Error-controlled Approximate-key Caching , 2021, IEEE Conference on Computer Communications.

[2]  Ben Pfaff,et al.  revisiting the open vSwitch dataplane ten years later , 2021, SIGCOMM.

[3]  Michael W. Mahoney,et al.  A Survey of Quantization Methods for Efficient Neural Network Inference , 2021, Low-Power Computer Vision.

[4]  Dinil Mon Divakaran,et al.  On the Feasibility and Enhancement of the Tuple Space Explosion Attack against Open vSwitch , 2020, ArXiv.

[5]  Hamed Haddadi,et al.  Running Neural Networks on the NIC , 2020, 2009.02353.

[6]  Andrea C. Arpaci-Dusseau,et al.  From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees , 2020, OSDI.

[7]  Tim Kraska,et al.  RadixSpline: a single-pass learned index , 2020, aiDM@SIGMOD.

[8]  Patrick Judd,et al.  Integer Quantization for Deep Learning Inference: Principles and Empirical Evaluation , 2020, ArXiv.

[9]  Haibo Chen,et al.  XIndex: a scalable learned index for multicore data storage , 2020, PPoPP.

[10]  Mark Silberstein,et al.  A Computational Approach to Packet Classification , 2020, IEEE/ACM Transactions on Networking.

[11]  Stefan Schmid,et al.  Tuple space explosion: a denial-of-service attack against a software packet classifier , 2019, CoNEXT.

[12]  Noa Zilberman,et al.  Do Switches Dream of Machine Learning?: Toward In-Network Classification , 2019, HotNets.

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

[14]  Badrish Chandramouli,et al.  ALEX: An Updatable Adaptive Learned Index , 2019, SIGMOD Conference.

[15]  Pengfei Zuo,et al.  A Scalable Learned Index Scheme in Storage Systems , 2019, ArXiv.

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

[17]  Daniel Brand,et al.  Training Deep Neural Networks with 8-bit Floating Point Numbers , 2018, NeurIPS.

[18]  Eric Torng,et al.  A Sorted-Partitioning Approach to Fast and Scalable Dynamic Packet Classification , 2018, IEEE/ACM Transactions on Networking.

[19]  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.

[20]  Ed H. Chi,et al.  The Case for Learned Index Structures , 2017, SIGMOD Conference.

[21]  Daniel Firestone,et al.  VFP: A Virtual Switch Platform for Host SDN in the Public Cloud , 2017, NSDI.

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

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

[24]  D. M. Hutton,et al.  The Art of Multiprocessor Programming , 2008 .

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

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

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

[28]  S. Suri,et al.  Packet classification using tuple space search , 1999, SIGCOMM '99.

[29]  Nick McKeown,et al.  Packet classification on multiple fields , 1999, SIGCOMM '99.

[30]  Marco Chiesa,et al.  What You Need to Know About (Smart) Network Interface Cards , 2021, PAM.

[31]  Haibo Chen,et al.  Fast RDMA-based Ordered Key-Value Store using Remote Learned Cache , 2020, OSDI.

[32]  Edward Edberg Halim,et al.  LinnOS: Predictability on Unpredictable Flash Storage with a Light Neural Network , 2020, OSDI.

[33]  Tim Kraska,et al.  SageDB: A Learned Database System , 2019, CIDR.

[34]  Nick McKeown,et al.  Classifying Packets with Hierarchical Intelligent Cuttings , 2000, IEEE Micro.