EP1533956A2

Dynamic forwarding of data packets using binary search

Abstract

The longest prefix match method of the invention is based on an enhanced look-up combined with a binary search over the hash tables, which results in reduced average and worst-case lookup times. The lookup involves using a sliding window of a fixed size which separates prefixes into groupings, while reducing the number of prefix lengths that need to be searched. Additionally, the order of prefix lengths searched can be tuned based on statistical traffic measurements in order to further reduce the average case lookup.

EP1533956A2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Projected expiry passed 22 November 2024, 1.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

26 claims: 3 independent, 23 dependent

  1. 1
    A method of forwarding protocol data units PDU's in a router with a forwarding hash table, comprising the steps of:a) selecting a window size of n window bits and an offset of o offset bits;b) generating a grouping table with sets of prefix lengths based on said window size and offset;c) using said n window bits as a direct index into said grouping table to find an initial prefix length and provide an associated entry into said hash table;and d) performing a lookup in said hash table based on said initial prefix length for matching said window bits with the bits of at said associated entry.
  2. 21
    A method of forwarding a protocol data unit (PDU) at a router with a forwarding hash table, comprising the steps of:dividing the prefix lengths available in said hash table into groups;and routing said PDU according to a lookup in said hash table based on the prefix lengths in a selected group of said groups.
  3. 24
    A memory for storing data for access by a routing program being executed on a router having a hash table, comprising:a prefix length array for storing a grouping table comprising 2 n entries, each entry corresponding to a prefix length available for matching n bits of the IP address of a protocol data unit (PDU);and a search area for storing a prefix length search tree constructed using said grouping table based on a lockup in said hash table, said lookup being performed for a prefix length in said grouping table, using said n bits in said IP address.