Binary Search on Multiple Small Trees for IP Address Lookup

  • Lee BoMi (SoC Design Lab Information Electronics Engineering, Ewha Womans University) ;
  • Kim Won-Jung (SoC Design Lab Information Electronics Engineering, Ewha Womans University) ;
  • Lim Hyesook (SoC Design Lab Information Electronics Engineering, Ewha Womans University)
  • 이보미 (이화여자대학교 정보통신학과 SoC 설계 연구실) ;
  • 김원정 (이화여자대학교 정보통신학과 SoC 설계 연구실) ;
  • 임혜숙 (이화여자대학교 정보통신학과 SoC 설계 연구실)
  • Published : 2004.06.01

Abstract

This paper describes a new IP address lookup algorithm using a binary search on multiple balanced trees stored in one memory. The proposed scheme has 3 different tables; a range table, a main table, and multiple sub-tables. The range table includes $2^8$ entries of 22 bits wide. Each of the main table and sub-table entries is composed of fields for a prefix, a prefix length, the number of sub-table entries, a sub-table pointer, and a forwarding RAM pointer. Binary searches are performed in the main table and the multiple sub-tables in sequence. Address lookups in our proposed scheme are achieved by memory access times of 11 in average, 1 in minimum, and 24 in maximum using 267 Kbytes of memory for 38.000 prefixes. Hence the forwarding table of the proposed scheme is stored into L2 cache, and the address lookup algorithm is implemented in software running on general purpose processor. Since the proposed scheme only depends on the number of prefixes not the length of prefixes, it is easily scaled to IPv6.

Keywords