High-performance packet classification algorithm for many-core and multithreaded network processor

Packet classification is crucial for the Internet to provide more value-added services and guaranteed quality of service. Besides hardware-based solutions, many software-based classification algorithms have been proposed. However, classifying at 10Gbps speed or higher is a challenging problem and it is still one of the performance bottlenecks in core routers. In general, classification algorithms face the same challenge of balancing between high classification speed and low memory requirements. This paper proposes a modified Recursive Flow Classification (RFC) algorithm, Bitmap-RFC, which significantly reduces the memory requirements of RFC by applying a bitmap compression technique. To speed up classifying speed, we experiment on exploiting the architectural features of a many-core and multithreaded architecture from algorithm design to algorithm implementation. As a result, Bitmap-RFC strikes a good balance between speed and space. It can not only keep high classification speed but also reduce memory space significantly.This paper investigates the main NPU software design aspects that have dramatic performance impacts on any NPU-based implementations: memory space reduction, instruction selection, data allocation, task partitioning, and latency hiding. We experiment with an architecture-aware design principle to guarantee the high performance of the classification algorithm on an NPU implementation. The experimental results show that the Bitmap-RFC algorithm achieves 10Gbps speed or higher and has a good scalability on Intel IXP2800 NP.

[1]  Kurt Keutzer,et al.  Programming challenges in network processor deployment , 2003, CASES '03.

[2]  Edward W. Spitznagel Compressed Data Structures for Recursive Flow Classification , 2003 .

[3]  Marcel Waldvogel,et al.  IBM PowerNP network processor: Hardware, software, and applications , 2003, IBM J. Res. Dev..

[4]  George Varghese,et al.  A pipelined memory architecture for high throughput network processors , 2003, ISCA '03.

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

[6]  George Varghese,et al.  Fast and scalable layer four switching , 1998, SIGCOMM '98.

[7]  Panos Lekkas,et al.  Network Processors , 2003 .

[8]  Yaxuan Qi,et al.  Towards effective packet classification , 2006, Communication, Network, and Information Security.

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

[10]  Jing Wang,et al.  Thread partitioning and scheduling based on cost model , 1997, SPAA '97.

[11]  Guang R. Gao,et al.  Automatically Partitioning Threads for Multithreaded Architectures , 1999, J. Parallel Distributed Comput..

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

[13]  Antonius P. J. Engbersen Network processors , 2003, Comput. Networks.

[14]  Guang R. Gao,et al.  How “hard” is thread partitioning and how “bad” is a list scheduling based partitioning algorithm? , 1998, SPAA '98.

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

[16]  Michael E. Kounavis,et al.  Directions in Packet Classification for Network Processors , 2004 .

[17]  Xinan Tang,et al.  High-performance IPv6 forwarding algorithm for multi-core and multithreaded network processor , 2006, PPoPP '06.

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

[19]  Svante Carlsson,et al.  Small forwarding tables for fast routing lookups , 1997, SIGCOMM '97.

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

[21]  George Varghese,et al.  Packet classification for core routers: is there an alternative to CAMs? , 2003, IEEE INFOCOM 2003. Twenty-second Annual Joint Conference of the IEEE Computer and Communications Societies (IEEE Cat. No.03CH37428).

[22]  George Varghese,et al.  Scalable packet classification , 2001, SIGCOMM '01.

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