CCN routing using hardware-assisted hash tables
First Claim
1. A computer-implemented method forforwarding packets, comprising:
- receiving, by a computer, a packet with a hierarchically structured variable length identifier (HSVLI) which comprises contiguous name components ordered from a most general level to a most specific level; and
performing a longest prefix match lookup for forwarding the packet by selecting an entry from a first data structure of entries, wherein a respective entry indicates a name component, forwarding information for the name component, and a plurality of entry identifiers that chain the respective entry to another entry, wherein performing the longest prefix match lookup further comprises;
determining a size of a name component;
if the size of the name component is less than or equal to a predetermined threshold, selecting a first entry based on the name component;
if the size of the name component is greater than the predetermined threshold;
compressing the name component to obtain a compressed key;
selecting a second entry based on the compressed key; and
in response to determining a lookup collision associated with the selected second entry, wherein the lookup collision indicates that the compressed key and another compressed key both return a same entry when performing the lookup in the first data structure of entries, resolving the lookup collision based on a new lookup key, thereby facilitating forwarding of packets with variable length names.
3 Assignments
0 Petitions
Accused Products
Abstract
One embodiment provides a system that facilitates forwarding of packets with variable length names. During operation, the system receives a packet with a hierarchically structured variable length identifier (HSVLI) which comprises contiguous name components ordered from a most general level to a most specific level. The system performs a longest prefix match lookup by selecting an entry from a first data structure of entries. The entries indicate a name component, forwarding information for the name component, and a plurality of entry identifiers that chain an entry to another entry. If a size of the name component is less than or equal to a predetermined threshold, the system selects an entry based on the name component. If the size is greater, the system selects an entry based on a compressed key which can be a hash of the name component. The system also resolves collisions associated with the selected entry.
-
Citations
24 Claims
-
1. A computer-implemented method forforwarding packets, comprising:
-
receiving, by a computer, a packet with a hierarchically structured variable length identifier (HSVLI) which comprises contiguous name components ordered from a most general level to a most specific level; and performing a longest prefix match lookup for forwarding the packet by selecting an entry from a first data structure of entries, wherein a respective entry indicates a name component, forwarding information for the name component, and a plurality of entry identifiers that chain the respective entry to another entry, wherein performing the longest prefix match lookup further comprises; determining a size of a name component; if the size of the name component is less than or equal to a predetermined threshold, selecting a first entry based on the name component; if the size of the name component is greater than the predetermined threshold; compressing the name component to obtain a compressed key; selecting a second entry based on the compressed key; and in response to determining a lookup collision associated with the selected second entry, wherein the lookup collision indicates that the compressed key and another compressed key both return a same entry when performing the lookup in the first data structure of entries, resolving the lookup collision based on a new lookup key, thereby facilitating forwarding of packets with variable length names. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for forwarding packets, the method comprising:
-
receiving, by the computer, a packet with a hierarchically structured variable length identifier (HSVLI) which comprises contiguous name components ordered from a most general level to a most specific level; and performing a longest prefix match lookup for forwarding the packet by selecting an entry from a first data structure of entries, wherein a respective entry indicates a name component, forwarding information for the name component, and a plurality of entry identifiers that chain the respective entry to another entry, wherein performing the longest prefix match lookup further comprises; determining a size of a name component; if the size of the name component is less than or equal to a predetermined threshold, selecting a first entry based on the name component; if the size of the name component is greater than the predetermined threshold; compressing the name component to obtain a compressed key; selecting a second entry based on the compressed key; and in response to determining a lookup collision associated with the selected second entry, wherein the lookup collision indicates that the compressed key and another compressed key both return a same entry when performing the lookup in the first data structure of entries, resolving the lookup collision based on a new lookup key, thereby facilitating forwarding of packets with variable length names. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer system for forwarding content, the system comprising:
-
a processor; a storage device coupled to the processor and storing instructions that when executed by a computer cause the computer to perform a method, the method comprising; receiving, by the computer, a packet with a hierarchically structured variable length identifier (HSVLI) which comprises contiguous name components ordered from a most general level to a most specific level; and performing a longest prefix match lookup for forwarding the packet by selecting an entry from a first data structure of entries, wherein a respective entry indicates a name component, forwarding information for the name component, and a plurality of entry identifiers that chain the respective entry to another entry, wherein performing the longest prefix match lookup further comprises; determining a size of a name component; if the size of the name component is less than or equal to a predetermined threshold, selecting a first entry based on the name component; if the size of the name component is greater than the predetermined threshold; compressing the name component to obtain a compressed key; selecting a second entry based on the compressed key; and in response to determining a lookup collision associated with the selected second entry, wherein the lookup collision indicates that the compressed key and another compressed key both return a same entry when performing the lookup in the first data structure of entries, resolving the lookup collision based on a new lookup key, thereby facilitating forwarding of packets with variable length names. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification