Scalable GPU-Accelerated IPv6 Lookup Using Hierarchical Perfect Hashing

IPv6 has been proposed to fulfil the increasing demand of IP addresses. As the data rate and volume of network traffic keep increasing and the Internet evolves, high-speed IPv6 lookup for large routing tables is essential. In this paper, we propose a novel IPv6 lookup approach based on hierarchical perfect hashing. The lookup complexity of the proposed algorithm is O(1) in the worst case. The performance is independent of the prefix distribution or the size of the routing table. Each lookup is performed by examining up to 3 perfect hash tables. Each hash table uses a range of bits of the input IP address as lookup key. We develop a simple scheme to choose appropriate key length for each hash table, which can efficiently reduce the total memory requirement. We implement our design on a state- of-the-art Compute Unified Device Architecture (CUDA) platform. Experimental results show that our GPU-accelerated lookup engine is scalable to sustain a high throughput of over 1.6 billion lookups per second (GLPS) for routing tables from 10K to 1M. This corresponds to 80% of the peak throughput of the target platform. Compared with a state-of-the-art GPU-based IPv6 lookup engine, our design demonstrates 2x improvement with respect to throughput for large tables.

[1]  Mehrdad Nourani,et al.  A TCAM-Based Parallel Architecture for High-Speed Packet Forwarding , 2007, IEEE Transactions on Computers.

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

[3]  Jean-Luc Gaudiot,et al.  Boosting CUDA Applications with CPU–GPU Hybrid Computing , 2013, International Journal of Parallel Programming.

[4]  Stephen E. Deering,et al.  Non-random generator for IPv6 tables , 2004, Proceedings. 12th Annual IEEE Symposium on High Performance Interconnects.

[5]  Viktor K. Prasanna,et al.  High-Performance Traffic Classification on GPU , 2014, 2014 IEEE 26th International Symposium on Computer Architecture and High Performance Computing.

[6]  Pi-Chung Wang,et al.  IP address lookup using GPU , 2013, 2013 IEEE 14th International Conference on High Performance Switching and Routing (HPSR).

[7]  Dafang Zhang,et al.  GAMT: A fast and scalable IP lookup engine for GPU-based software routers , 2013, Architectures for Networking and Communications Systems.

[8]  Sartaj Sahni,et al.  Efficient construction of multibit tries for IP lookup , 2003, TNET.

[9]  Stefano Giordano,et al.  A Novel High-Speed Micro-Flows Classification Algorithm Based on Perfect Hashing and Direct Addressing , 2007, IEEE GLOBECOM 2007 - IEEE Global Telecommunications Conference.

[10]  Satendra Kumar Maurya Design and implementation of longest prefix matching content addressable memory for IP routing , 2009 .

[11]  Xin Wang,et al.  Exploiting graphics processors for high-performance IP lookup in software routers , 2011, 2011 Proceedings IEEE INFOCOM.

[12]  Dafang Zhang,et al.  An Efficient Update Mechanism for GPU-Based IP Lookup Engine Using Threaded Segment Tree , 2013, ICoC.

[13]  Martti Penttonen,et al.  A Reliable Randomized Algorithm for the Closest-Pair Problem , 1997, J. Algorithms.

[14]  Walid Dabbous,et al.  Survey and taxonomy of IP address lookup algorithms , 2001, IEEE Netw..

[15]  Viktor K. Prasanna,et al.  Scalable Tree-Based Architectures for IPv4/v6 Lookup Using Prefix Partitioning , 2012, IEEE Transactions on Computers.

[16]  Gunnar Karlsson,et al.  IP-address lookup using LC-tries , 1999, IEEE J. Sel. Areas Commun..

[17]  Viktor K. Prasanna,et al.  High-performance packet classification on GPU , 2014, 2014 IEEE High Performance Extreme Computing Conference (HPEC).

[18]  Viktor K. Prasanna,et al.  100+ Gbps IPv6 packet forwarding on multi-core platforms , 2013, 2013 IEEE Global Communications Conference (GLOBECOM).

[19]  KyoungSoo Park,et al.  PacketShader: Massively Parallel Packet Processing with GPUs to Accelerate Software Routers , 2010, NSDI 2010.

[20]  Bin Liu,et al.  A TCAM-based distributed parallel IP lookup scheme and performance analysis , 2006, IEEE/ACM Transactions on Networking.