Scalable architecture for 135 GBPS IPv6 lookup on FPGA (abstract only)

  • Authors:
  • Yi-Hua E. Yang;Oğuzhan Erdem;Viktor K. Prasanna

  • Affiliations:
  • University of Southern California, Santa Clara, CA, USA;Middle-East Technical University, Ankara, Turkey;University of Southern California, Los Angeles, CA, USA

  • Venue:
  • Proceedings of the ACM/SIGDA international symposium on Field Programmable Gate Arrays
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

High-speed IP lookup remains a challenging problem in next generation routers due to the ever increasing line rate and routing table size. In addition, the evolution towards IPv6 also requires long prefix length, sparse prefix distribution, and potentially very large routing tables. In this paper, we propose a novel Combined Length-Infix Pipelined Search (CLIPS) architecture for IPv6 routing table lookup on FPGA. CLIPS solves the longest prefix match (LPM) problem by combining both prefix length and infix pattern search. Binary search in prefix length is performed on the 64-bit routing prefix of IPv6 down to an 8-bit length range in log(64/8)=3 phases; each phase performs a fully-pipelined infix pattern search with only one external memory access. A fourth and the last phase then finds the LPM (if any) within the 8-bit length range in a compressed multi-bit trie. We describe the algorithms and data structures used for the CLIPS construction, run-time operation, dynamic update and false-positive avoidance. The proposed solution improves the on-chip memory efficiency on FPGA and maximizes the external SRAM utilization; additional properties for ensuring the practicality of our scheme include the modular construction, easy dynamic update, and simple resource allocation. Using a state-of-the-art FPGA, our CLIPS prototype supports up to 2.7 millioin IPv6 prefixes when employing 33 Mbits of BRAM and 4 channels of external SRAM. The prototype achieves a sustained throughput of 264 million IPv6 lookups per second, or 135 Gbps with minimum size (64-byte) packets.