An improved system and method is provided for packet routing in dynamic
router tables. Specifically, the invention relates to a method and system
for using tree data structures to select the highest priority rule that
matches a destination address in dynamic Internet packet routing tables.
In an embodiment, a data structure called BOB (binary tree on binary
tree) for dynamic router tables in which the rule filters are
nonintersecting ranges and in which ties are broken by selecting the
highest-priority rule that matches a destination address is disclosed.
Prefix filters are a special case of nonintersecting ranges and the
commonly used longest-prefix tie breaker is a special case of the
highest-priority tie breaker. When an n-rule router table is represented
using BOB, the highest-priority rule that matches a destination address
may be found in O(log.sup.2n) time; a new rule maybe inserted and an old
one deleted in O(log n) time. For the case when all rule filters are
prefixes, the data structure PBOB (prefix BOB) permits highest-priority
matching as well as rule insertion and deletion in O(W) time, where W is
the length of the longest prefix, each. When all rule filters are
prefixes and longest-prefix matching is to be done, the data structures
LMPBOB (longest matching-prefix BOB) permits longest-prefix matching in
O(W) time; rule insertion and deletion each take O(log n) time. On
practical rule tables, BOB and PBOB perform each of the three
dynamic-table operations in O(log n) time and with O(log n) cache misses.
The number of cache misses incurred by LMPBOB is also O(log n).