Compact trie forest: Scalable architecture for IP lookup on FPGAs

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. Among all existing implementation platforms, Field Programmable Gate Array (FPGA) is a prevailing platform to implement SRAM-based pipelined architectures for high-speed IP lookup because of its abundant parallelism and other desirable features. However, due to the available on-chip memory and the number of I/O pins of FPGAs, state-of-the-art designs cannot support large routing tables consisting of over 350K prefixes in backbone routers. We propose a search algorithm and data structure denoted Compact Trie (CT) for IP lookup. Our algorithm demonstrates a substantial reduction in the memory footprint compared with the state-of-the-art solutions. A parallel architecture on FPGAs, named Compact Trie Forest (CTF), is introduced to support the data structure. Along with pipelining techniques, our optimized architecture also employs multiple memory banks in each stage to further reduce memory and resource redundancy. Implementation on a state-of-the-art FPGA device shows that the proposed architecture can support large routing tables consisting up to 703K IPv4 or 418K IPv6 prefixes. The post place-and-route result shows that our architecture can sustain a throughput of 420 million lookups per second (MLPS), or 135 Gbps for the minimum packet size of 40 Bytes. The result surpasses the worst-case 150 MLPS required by the standardized 100GbE line cards.

[1]  Viktor K. Prasanna,et al.  Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression , 2011, 2011 IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines.

[2]  Bernhard Plattner,et al.  Scalable high speed IP routing lookups , 1997, SIGCOMM '97.

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

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

[5]  Sartaj Sahni,et al.  Packet Forwarding Using Pipelined Multibit Tries , 2006, 11th IEEE Symposium on Computers and Communications (ISCC'06).

[6]  H. Jonathan Chao,et al.  FlashTrie: Hash-based Prefix-Compressed Trie for IP Route Lookup Beyond 100Gbps , 2010, 2010 Proceedings IEEE INFOCOM.

[7]  Bin Liu,et al.  Route Table Partitioning and Load Balancing for Parallel Searching with TCAMs , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[8]  Viktor K. Prasanna,et al.  A Memory-Balanced Linear Pipeline Architecture for Trie-based IP Lookup , 2007, 15th Annual IEEE Symposium on High-Performance Interconnects (HOTI 2007).

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

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

[11]  Wladek Olesinski,et al.  Backlog Aware Low Complexity Schedulers for Input Queued Packet Switches , 2007 .

[12]  F G4HIKJL,et al.  A B-Tree Dynamic Router-Table Design , 2005 .

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

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