Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: identifying a plurality of items, each item of the plurality of items including a first field and a second field; mapping each unique first field of the plurality of items to a mapped first field; mapping each unique second field of the plurality of items to a mapped second field; programming a first associative memory with said unique first fields and a first stage memory with said mapped first fields at corresponding locations in the first stage memory; programming a second associative memory with said unique second fields and a second stage memory with said mapped second fields at corresponding locations in the second stage memory; and programming for each particular item of the plurality of items a second stage associative memory with an entry based on the mapped first field and the mapped second field corresponding to the particular item.
2. The method of claim 1 , wherein said mapping each unique first field includes determining mapped first values for each of at least two of said unique first fields such that a first matching value including a wildcard will match said mapped first values for said each of said at least two of said unique first fields.
3. The method of claim 2 , wherein said mapping each unique second field includes determining mapped second values for each of at least two of said unique second fields such that a second matching value including a wildcard will match said mapped second values for said each of said at least two of said unique second fields.
4. The method of claim 1 , wherein each entry of the second stage associative memory includes a field other than the first and second mapped fields.
5. The method of claim 1 , further comprising: receiving a packet including a particular first value and a particular second value; performing a first lookup operation on the first associative memory to generate a first hit; performing a first memory lookup operation based on the first hit to generate a first mapped packet field value; performing a second lookup operation on the second associative memory to generate a second hit; performing a second memory lookup operation based on the second hit to generate a second mapped packet field value; performing a third lookup operation on the second stage associative memory based on the first and second mapped packet field values to generate a third hit; and processing the packet based on the third hit.
6. The method of claim 5 , wherein said processing the packet based on the third hit includes: performing a third memory lookup operation based on the third hit to generate an action identifier; and routing or filtering the packet based on the action identifier.
7. The method of claim 5 , wherein the first value includes a source address, a destination address, or a port value.
8. The method of claim 5 , wherein the first value includes a source address and the second value includes a destination address.
9. One or more tangible computer-readable media encoded thereon with computer-executable instructions for performing operations when executed by one or more processing elements, said operations comprising: identifying a plurality of items, each item of the plurality of items including a first field and a second field; mapping each unique first field of the plurality of items to a mapped first field; mapping each unique second field of the plurality of items to a mapped second field; programming a first associative memory with said unique first fields and a first stage memory with said mapped first fields at corresponding locations in the first stage memory; programming a second associative memory with said unique second fields and a second stage memory with said mapped second fields at corresponding locations in the second stage memory; and programming for each particular item of the plurality of items a second stage associative memory with an entry based on the mapped first field and the mapped second field corresponding to the particular item.
10. The computer-readable media of claim 9 , wherein said mapping each unique first field includes determining mapped first values for each of at least two of said unique first fields such that a first matching value including a wildcard will match said mapped first values for said each of said at least two of said unique first fields.
11. The computer-readable media of claim 10 , wherein said mapping each unique second field includes determining mapped second values for each of at least two of said unique second fields such that a second matching value including a wildcard will match said mapped second values for said each of said at least two of said unique second fields.
12. An apparatus comprising: a first associative memory including first fields of a plurality of items of a list, the first associative memory configured to generate a first hit; a first memory, coupled to the first associative memory, the first memory including mapped first values corresponding to said first fields of the plurality of items, the first memory configured to generate a first mapped lookup value based on the first hit; a second associative memory including second fields of the plurality of items, the second associative memory configured to generate a second hit; a second memory, coupled to the second associative memory, the second memory including mapped second values corresponding to said second fields of the plurality of items, the second memory configured to generate a second mapped lookup value base on the second hit; and a third associative memory, coupled to the first memory and the second memory, the third associative memory programmed with a plurality of third associative memory entries, the third associative memory configured to generate a resultant hit based on a lookup word including the first mapped lookup value and the second mapped lookup value.
13. The apparatus of claim 12 , wherein a first portion of a particular entry of the plurality of third associative memory entries includes a wildcard, the first portion matching two or more of said mapped first values.
14. The apparatus of claim 13 , wherein a second portion of the particular entry of the plurality of third associative memory entries includes a wildcard, the second portion matching two or more of said mapped second values.
15. An apparatus comprising: means for identifying a plurality of items, each item of the plurality of items including a first field and a second field; means for mapping each unique first field of the plurality of items to a mapped first field; means for mapping each unique second field of the plurality of items to a mapped second field; means for programming a first associative memory with said unique first fields and a first stage memory with said mapped first fields at corresponding locations in the first stage memory; means for programming a second associative memory with said unique second fields and a second stage memory with said mapped second fields at corresponding locations in the second stage memory; means for programming for each particular item of the plurality of items a second stage associative memory with an entry based on the mapped first field and the mapped second field corresponding to the particular item.
16. The apparatus of claim 15 , wherein said means for mapping each unique first field includes means for determining mapped first values for each of at least two of said unique first fields such that a first matching value including a wildcard will match said mapped first values for said each of said at least two of said unique first fields.
17. The apparatus of claim 16 , wherein said means for mapping each unique second field includes means for determining mapped second values for each of at least two of said unique second fields such that a second matching value including a wildcard will match said mapped second values for said each of said at least two of said unique second fields.
18. The apparatus of claim 15 , wherein each entry of the second stage associative memory includes a field other than the first and second mapped fields.
19. The apparatus of claim 15 , further comprising: means for receiving a packet including a particular first value and a particular second value; means for performing a first lookup operation on the first associative memory to generate a first hit; means for performing a first memory lookup operation based on the first hit to generate a first mapped packet field value; means for performing a second lookup operation on the second associative memory to generate a second hit; means for performing a second memory lookup operation based on the second hit to generate a second mapped packet field value; means for performing a third lookup operation on the second stage associative memory based on the first and second mapped packet field values to generate a third hit; and means for processing the packet based on the third hit.
20. The apparatus of claim 19 , wherein said means for processing the packet based on the third hit includes: means for performing a third memory lookup operation based on the third hit to generate an action identifier.
21. The apparatus of claim 19 , wherein the first value includes a source address, a destination address, or a port value.
22. The apparatus of claim 19 , wherein the first value includes a source address and the second value includes a destination address.
Unknown
December 25, 2007
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.