Bidirectional Pipelining for Scalable IP Lookup and Packet Classification

Both IP lookup and packet classification in IP routers can be implemented by some form of tree traversal. SRAM-based Pipelining can improve the throughput dramatically. However, previous pipelining schemes result in unbalanced memory allocation over the pipeline stages. This has been identified as a major challenge for scalable pipelined solutions. This paper proposes a flexible bidirectional linear pipeline architecture based on widely-used dual-port SRAMs. A search tree is partitioned, and then mapped onto pipeline stages by a bidirectional fine-grained mapping scheme. We introduce the notion of inversion factor and several heuristics to invert subtrees for memory balancing. Due to its linear structure, the architecture maintains packet input order, and supports non-blocking route updates. Our experiments show that, the architecture can achieve a perfectly balanced memory distribution over the pipeline stages, for both trie-based IP lookup and tree-based multi-dimensional packet classification. For IP lookup, it can store a full backbone routing table with 154419 entries using 2MB of memory, and sustain a high throughput of 1.87 billion packets per second (GPPS), i.e. 0.6 Tbps for the minimum size (40 bytes) packets. The throughput can be improved further to be 2.4 Tbps, by employing caching to exploit the Internet traffic locality.

[1]  Nick McKeown,et al.  Algorithms for packet classification , 2001, IEEE Netw..

[2]  George Varghese,et al.  Scalable packet classification , 2005, IEEE/ACM Transactions on Networking.

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

[4]  Francis Zane,et al.  Coolcams: power-efficient TCAMs for forwarding engines , 2003, IEEE INFOCOM 2003. Twenty-second Annual Joint Conference of the IEEE Computer and Communications Societies (IEEE Cat. No.03CH37428).

[5]  George Varghese,et al.  Packet classification using multidimensional cutting , 2003, SIGCOMM '03.

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

[7]  V. Srinivasan,et al.  Fast address lookups using controlled prefix expansion , 1999, TOCS.

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

[9]  Viktor K. Prasanna,et al.  Beyond TCAMs: An SRAM-Based Parallel Multi-Pipeline Architecture for Terabit IP Lookup , 2008, IEEE INFOCOM 2008 - The 27th Conference on Computer Communications.

[10]  T. N. Vijaykumar,et al.  Dynamic pipelining: making IP-lookup truly scalable , 2005, SIGCOMM '05.

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

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

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

[14]  Patrick Crowley,et al.  CAMP: fast and efficient IP lookup architecture , 2006, ANCS '06.

[15]  Girija J. Narlikar,et al.  Fast incremental updates for pipelined forwarding engines , 2005, IEEE/ACM Transactions on Networking.

[16]  Sartaj Sahni,et al.  Efficient Construction of Pipelined Multibit-Trie Router-Tables , 2007, IEEE Transactions on Computers.