Address learning to enable high speed routing table lookups
First Claim
Patent Images
1. A switch comprising:
- a plurality of ports operable to communicate packets;
a switch fabric operable to transport received packets between the ports;
a plurality of memory banks logically divided into a plurality of rows, wherein each of the rows comprises a storage location from each of the memory banks, each of the storage locations capable of maintaining a routing entry;
an arbitration module operable to receive lookup requests and learn requests from the ports and to schedule memory access operations based upon the lookup requests and the learn requests, wherein the memory access operations comprise at least one address; and
a memory access module operable to receive the memory access operations, to determine a bash key from the address, wherein the hash key indicates a particular one of the rows, and to access the indicated row to perform at least one of the memory access operations.
1 Assignment
0 Petitions
Accused Products
Abstract
A switch includes multiple ports, a switching fabric, and a routing table module. The routing table module includes a multi-bank memory structure for maintaining routing information. The routing information enables the switching fabric to route packets between the ports based upon addresses within the packets.
29 Citations
23 Claims
-
1. A switch comprising:
-
a plurality of ports operable to communicate packets;
a switch fabric operable to transport received packets between the ports;
a plurality of memory banks logically divided into a plurality of rows, wherein each of the rows comprises a storage location from each of the memory banks, each of the storage locations capable of maintaining a routing entry;
an arbitration module operable to receive lookup requests and learn requests from the ports and to schedule memory access operations based upon the lookup requests and the learn requests, wherein the memory access operations comprise at least one address; and
a memory access module operable to receive the memory access operations, to determine a bash key from the address, wherein the hash key indicates a particular one of the rows, and to access the indicated row to perform at least one of the memory access operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for performing routing table operations comprising:
-
monitoring for lookup requests and learn requests received from any of a plurality of ports;
detecting a lookup request comprising a destination address;
determining a hash key based on the destination address;
accessing a memory module using the hash key, wherein the memory module comprises a plurality of memory banks logically divided into a plurality of rows, wherein each of the rows comprises a storage location from each of the memory banks, each of the storage locations capable of maintaining a routing entry, wherein the hash key indicates one of the row;
determining whether one of the entries from the indicated row includes address information matching the destination address;
if the indicated row includes a matching entry, returning routing information from the matching entry, the routing information identifying one or more of the ports. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A switch comprising:
-
means for monitoring for lookup requests and learn requests received from any of a plurality of ports;
means for detecting a lookup request comprising a destination address;
means for determining a hash key based on the destination address;
means for accessing a memory module using the hash key, wherein the memory module comprises a plurality of memory banks logically divided into a plurality of rows, wherein each of the rows comprises a storage location from each of the memory banks, each of the storage locations capable of maintaining a routing entry, wherein the hash key indicates one of the row;
means for determining whether one of the entries from the indicated row includes address information matching the destination address;
means for, if the indicated row includes a matching entry, returning routing information from the matching entry, the routing information identifying one or more of the ports. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification