Claims
- 1. A method for improving routing operations in dynamic routing tables comprising:
(a) establishing s to be used in a prefix partitioning scheme; (b) partitioning at least one prefix into up to min(n, 2s+1) partitions; (c) assessing prefix length with regard to s; (d) storing the prefix whose length is larger than or equal to s in a partition that corresponds to the value of the prefix's first s bit; (e) storing prefixes whose length is smaller than s in a first designated partition; and (f) representing the prefixes in each partition using a router table data structure.
- 2. The method according to claim 1, wherein the representative router table structure is a dynamic router-table data structure.
- 3. The method according to claim 2, wherein the dynamic router-table data structure is selected from a group consisting of BOB; PBOB; LMPBOB; B-tree data structure; CRBT; ACRBT; PST; HOT; BOT, and one bit TRIE.
- 4. The method according to claim 1, wherein the representative router table structure is a static router-table data structure.
- 5. The method according to claim 4, wherein the static router-table data structure is selected from a group consisting of a linear array; trie-based data structures; and hash trees organized by prefix length.
- 6. The method according to claim 1, further comprising the steps of:
(a) establishing t to be used for further partitioning the prefixes whose length is smaller than s; (b) assessing the length of the prefixes stored in the designated partition with regard to t; (b) partitioning at least one of the prefixes whose length is larger than or equal to t in up to min (n, 2t+1) partitions, wherein the prefix whose length is smaller than s and larger than or equal to t is placed in a partition based on the value of the prefix's first t bit; and (c) storing the prefixes whose length is smaller than s and t into a second designated partition.
- 7. The method according to claim 1, further comprising the step of indexing nonempty partitions using an array or a hash table.
- 8. A computer program product recorded on computer readable medium for routing packets comprising; a computer readable medium for receiving packets specifying prefixes and decision rules for the prefixes; a computer readable medium for establishing s bits to be used in a prefix partitioning scheme; a computer readable medium for matching, inserting, or deleting prefixes in a partitioning tree; and a computer readable medium for performing steps of multilevel partitioning, said steps comprising:
(a) establishing s to be used in a prefix partitioning scheme; (b) partitioning at least one prefix into up to min(n, 2s+1) partitions; (c) assessing prefix length with regard to s; (d) storing the prefix whose length is larger than or equal to s in a partition that corresponds to the value of the prefix's first s bit; (e) storing prefixes whose length is smaller than s in a first designated partition; and (f) representing the prefixes in each partition using a router table data structure.
- 9. The computer program according to claim 8, wherein the dynamic router-table data structure is selected from a group consisting of BOB; PBOB; LMPBOB; B-tree data structure; CRBT; ACRBT; PST; HOT; and BOT.
- 10. The computer program according to claim 8, wherein the representative router table structure is a static router-table data structure.
- 11. The computer program according to claim 10, wherein the static router-table data structure is selected from a group consisting of a linear array; trie-based data structures; and hash trees organized by prefix length.
- 12. The computer program according to claim 8, wherein the computer readable medium for performing the steps of multilevel partitioning further comprises the steps of:
(a) establishing t to be used for further partitioning the prefixes whose length is smaller than s; (b) assessing the length of the prefixes stored in the designated partition with regard to t; (c) partitioning at least one of the prefixes whose length is larger than or equal to t in up to min (n, 2t+1) partitions, wherein the prefix whose length is smaller than s and greater than or equal to t, is placed in a partition based on the value of the prefix's first t bit; and (d) storing the prefixes whose length is smaller than s and t into additional bits into a second designated partition.
- 13. A computer system comprising: a memory containing a partitioning routing table constructing program having functions for constructing a routing table with partitions based on the first s bits of a prefix; wherein the prefixes in each partition are represented by a router table data structure; and a processor for executing the partitioning routing table constructing program.
- 14. The computer system according to claim 13, wherein the partitioning routing table constructing program further includes functions for constructing partitions based on the first t bits of a prefix.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application No. 60/393,445, filed Jul. 3, 2002 and U.S. patent application Ser. No. 10/613,963, filed Jul. 3, 2003.
GOVERNMENT SUPPORT
[0002] This invention was made in part with funding under a funding grant, No. CCR9912395, from the National Science Foundation. The government has certain rights in the invention.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60393445 |
Jul 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10613963 |
Jul 2003 |
US |
Child |
10719914 |
Nov 2003 |
US |