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]  Jean-Luc Gaudiot,et al.  Boosting CUDA Applications with CPU–GPU Hybrid Computing , 2013, International Journal of Parallel Programming.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[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).