Scalable Packet Classification on FPGA

Multi-field packet classification has evolved from traditional fixed 5-tuple matching to flexible matching with arbitrary combination of numerous packet header fields. For example, the recently proposed OpenFlow switching requires classifying each packet using up to 12-tuple packet header fields. It has become a great challenge to develop scalable solutions for next-generation packet classification that support higher throughput, larger rule sets and more packet header fields. This paper exploits the abundant parallelism and other desirable features provided by current field-programmable gate arrays (FPGAs), and proposes a decision-tree-based, 2-D multi-pipeline architecture for next-generation packet classification. We revisit the techniques for traditional 5-tuple packet classification and propose several optimization techniques for the state-of-the-art decision-tree-based algorithm. Given a set of 12-tuple rules, we develop a framework to partition the rule set into multiple subsets each of which is built into an optimized decision tree. A tree-to-pipeline mapping scheme is carefully designed to maximize the memory utilization while sustaining high throughput. The implementation results show that our architecture can store either 10K real-life 5-tuple rules or 1K synthetic 12-tuple rules in on-chip memory of a single state-of-the-art FPGA, and sustain 80 and 40 Gbps throughput for minimum size (40 bytes) packets, respectively.

[1]  Jonathan S. Turner,et al.  Scalable packet classification using distributed crossproducing of field labels , 2005, Proceedings IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies..

[2]  Martín Casado,et al.  Rethinking Packet Forwarding Hardware , 2008, HotNets.

[3]  Yan Luo,et al.  Acceleration of decision tree searching for IP traffic classification , 2008, ANCS '08.

[4]  Viktor K. Prasanna,et al.  Large-scale wire-speed packet classification on FPGAs , 2009, FPGA '09.

[5]  Grigore Rosu,et al.  A tree based router search engine architecture with single port memories , 2005, 32nd International Symposium on Computer Architecture (ISCA'05).

[6]  Viktor K. Prasanna,et al.  Sequence-preserving parallel IP lookup using multiple SRAM-based pipelines , 2009, J. Parallel Distributed Comput..

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

[8]  Ioannis Papaefstathiou,et al.  Memory-Efficient 5D Packet Classification At 40 Gbps , 2007, IEEE INFOCOM 2007 - 26th IEEE International Conference on Computer Communications.

[9]  Guido Appenzeller,et al.  Implementing an OpenFlow switch on the NetFPGA platform , 2008, ANCS '08.

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

[11]  Girija J. Narlikar,et al.  Fast incremental updates for pipelined forwarding engines , 2005, IEEE/ACM Transactions on Networking.

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

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

[14]  T. V. Lakshman,et al.  Efficient multimatch packet classification and lookup with TCAM , 2005, IEEE Micro.

[15]  Zhen Liu,et al.  Low power architecture for high speed packet classification , 2008, ANCS '08.

[16]  Ioannis Sourdis Designs and algorithms for packet and content inspection , 2007 .

[17]  Ioannis Papaefstathiou,et al.  A Memory-Efficient FPGA-based Classification Engine , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

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

[19]  Viktor K. Prasanna,et al.  Parallel IP lookup using multiple SRAM-based pipelines , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[20]  Rabi N. Mahapatra,et al.  A Power and Throughput-Efficient Packet Classifier with n Bloom Filters , 2011, IEEE Transactions on Computers.

[21]  Harrick M. Vin,et al.  Two stage packet classification using most specific filter matching and transport level sharing , 2007, Comput. Networks.

[22]  Anand Rangarajan,et al.  Algorithms for advanced packet classification with ternary CAMs , 2005, SIGCOMM '05.

[23]  Haoyu Song,et al.  Fast packet classification using bloom filters , 2006, 2006 Symposium on Architecture For Networking And Communications Systems.

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

[25]  Haoyu Song,et al.  Efficient packet classification for network intrusion detection using FPGA , 2005, FPGA '05.

[26]  Julio Ortega Lopera,et al.  Accelerating OpenFlow switching with network processors , 2009, ANCS '09.

[27]  T. V. Lakshman,et al.  High-speed policy-based packet forwarding using efficient multi-dimensional range matching , 1998, SIGCOMM '98.

[28]  Kuruvilla Varghese,et al.  A Scalable High Throughput Firewall in FPGA , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

[29]  George Varghese,et al.  Tree bitmap: hardware/software IP lookups with incremental updates , 2004, CCRV.