Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression

Memory efficiency with compact data structures for Internet Protocol (IP) lookup has recently regained much interest in the research community. In this paper, we revisit the classic trie-based approach for solving the longest prefix matching (LPM) problem used in IP lookup. In particular, we target our solutions for a class of large and sparsely-distributed routing tables, such as those potentially arising in the next-generation IPv6 routing protocol. Due to longer prefix lengths and much larger address space, straight-forward implementation of trie-based LPM can significantly increase the number of nodes and/or memory required for IP lookup. Additionally, due to the available on-chip memory and the number of I/O pins of Field Programmable Gate Arrays (FPGAs), state-of-the-art designs cannot support large IPv6 routing tables consisting of over $300$K prefixes. We propose two algorithms to compress the uni-bit-trie representation of a given routing table: (1) \emph{single-prefix distance-bounded path compression} and (2) \emph{multiple-prefix distance-bounded path compression}. These algorithms determine the optimal maximum \emph{skip distance} at each node of the trie to minimize the total memory requirement. Our algorithms demonstrates substantial reduction in the memory footprint compared with the uni-bit-trie algorithm ($1.86\times$ for IPv4 and $6.16\times$ for IPv6), and with the original path compression algorithm ($1.77\times$ for IPv4 and $1.53\times$ for IPv6). Furthermore, implementation on a state-of-the-art FPGA device shows that our algorithms achieve $466$ million lookups per second and are well suited for $100$Gbps lookup. This implementation also scales to support larger routing tables and longer prefix length when we go from IPv4 to IPv6.

[1]  Wei Li,et al.  IPv6-Oriented 4xOC-768 Packet Classification with Deriving-Merging Partition and Field-Variable Encoding Algorithm , 2006, Proceedings IEEE INFOCOM 2006. 25TH IEEE International Conference on Computer Communications.

[2]  Viktor K. Prasanna,et al.  FRuG: A benchmark for packet forwarding in future networks , 2010, International Performance Computing and Communications Conference.

[3]  Arne Andersson,et al.  Efficient implementation of suffix trees , 1995, Softw. Pract. Exp..

[4]  Maya Gokhale,et al.  Hardware Technologies for High-Performance Data-Intensive Computing , 2008, Computer.

[5]  Matthew French,et al.  Autonomous System on a Chip Adaptation through Partial Runtime Reconfiguration , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

[6]  John W. Lockwood,et al.  Fast and Scalable Pattern Matching for Network Intrusion Detection Systems , 2006, IEEE Journal on Selected Areas in Communications.

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

[8]  Donald R. Morrison,et al.  PATRICIA—Practical Algorithm To Retrieve Information Coded in Alphanumeric , 1968, J. ACM.

[9]  Hossein Saidi,et al.  Scalar Prefix Search: A New Route Lookup Algorithm for Next Generation Internet , 2009, IEEE INFOCOM 2009.

[10]  Girija J. Narlikar,et al.  Fast incremental updates for pipelined forwarding engines , 2003, IEEE INFOCOM 2003. Twenty-second Annual Joint Conference of the IEEE Computer and Communications Societies (IEEE Cat. No.03CH37428).

[11]  Viktor K. Prasanna,et al.  A SRAM-based Architecture for Trie-based IP Lookup Using FPGA , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

[12]  Sartaj Sahni,et al.  A B-tree dynamic router-table design , 2004, Proceedings. ISCC 2004. Ninth International Symposium on Computers And Communications (IEEE Cat. No.04TH8769).

[13]  Masoud Sabaei,et al.  A novel reconfigurable hardware architecture for IP address lookup , 2005, 2005 Symposium on Architectures for Networking and Communications Systems (ANCS).

[14]  Ioannis Sourdis,et al.  Range Tries for scalable address lookup , 2009, ANCS '09.

[15]  George Varghese,et al.  Multiway range trees: scalable IP lookup with fast updates , 2001, GLOBECOM'01. IEEE Global Telecommunications Conference (Cat. No.01CH37270).

[16]  Gordon J. Brebner,et al.  Systematic Characterization of Programmable Packet Processing Pipelines , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[17]  Fang Hao,et al.  Scalable IP lookups using shape graphs , 2009, 2009 17th IEEE International Conference on Network Protocols.

[18]  Srinivas Aluru,et al.  Scalable, memory efficient, high-speed IP lookup algorithms , 2005, IEEE/ACM Transactions on Networking.

[19]  Keith Sklower,et al.  A Tree-Based Packet Routing Table for Berkeley Unix , 1991, USENIX Winter.

[20]  Fang Hao,et al.  IPv6 Lookups using Distributed and Load Balanced Bloom Filters for 100Gbps Core Router Line Cards , 2009, IEEE INFOCOM 2009.

[21]  Gary Carpenter 동적 사용자를 위한 Scalable 인증 그룹 키 교환 프로토콜 , 2005 .

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

[23]  H. Jonathan Chao,et al.  High Performance Switches and Routers , 2007 .

[24]  Viktor K. Prasanna,et al.  Scalable High Throughput and Power Efficient IP-Lookup on FPGA , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

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