7852850

Double-Hash Lookup Mechanism for Searching Addresses in a Network Device

PublishedDecember 14, 2010
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
38 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of fetching an entry in a first forwarding database (FDB) of a network device, the method comprising: applying a hash function to a first set of data to generate a hash; using a first subset of the hash to select an entry in a lookup table; using a second subset of the hash to identify an offset within the entry; combining the offset with the first subset of the hash to identify an entry in the first FDB; and fetching the identified entry.

2

2. The method of claim 1 , further comprising: forwarding payload data associated with the first set of data to at least one port specified by the identified entry in the FDB.

3

3. The method of claim 1 , further comprising: splitting the hash into first and second parts, the first part comprising the first subset and the second part comprising the second subset, wherein the second subset comprises all of the hash not included in the first subset.

4

4. The method of claim 1 , further comprising: applying the hash function to a second set of data to generate a second hash; determining that the FDB does not contain valid forwarding directions, using at least a portion the second hash; and identifying an entry in a second forwarding database, using at least a portion of the second set of data.

5

5. The method of claim 1 , further comprising: searching a second forwarding database; and determining that the second forwarding database does not have a valid entry corresponding to the first set of data, wherein the determining step triggers the step of using the first subset of the hash to lookup the entry in the lookup table.

6

6. The method of claim 1 , wherein the hash function comprises a cyclic redundancy check (CRC) hash.

7

7. The method of claim 1 , wherein: the lookup table comprises a plurality of rows and is searchable by the first subset of the hash; the entry in the lookup table comprises one or more rows of the lookup table; and the second subset of the hash is compared with data in the one or more rows to thereby identify the offset.

8

8. The method of claim 1 , further comprising: matching the second subset of the hash to data within the entry, wherein the data is associated with the data comprising the offset.

9

9. The method of claim 1 , further comprising: manipulating data produced by applying the hash function to create the hash.

10

10. The method of claim 1 , wherein the network device is selected from the group consisting of a bridge, a switch, and a router.

11

11. A method of fetching a forwarding entry by accessing a plurality of forwarding databases, the method comprising: applying a hash function to data comprising an address to generate a hash; using a first subset of the hash to lookup an entry in a lookup table associated with a first one of the plurality of forwarding databases; using a second subset of the hash to identify a set of data within the entry in the lookup table; using the first subset of the hash and the set of data to identify an entry in the first one of the plurality of forwarding databases; determining that the entry in the first one of the plurality of forwarding databases does not provide valid forwarding directions; and using at least a part of the data to identify a forwarding entry in a second one of the plurality of forwarding databases.

12

12. The method of claim 11 , further comprising: forwarding payload bits disposed in the data to one or more egress ports specified by the forwarding entry.

13

13. The method of claim 11 , wherein the second one of the plurality of forwarding databases is stored in Ternary Content Addressable Memory (TCAM).

14

14. The method of claim 13 , wherein the TCAM includes a plurality of searchable keys and the data is matched with a first one of the plurality of searchable keys to identify the forwarding entry.

15

15. The method of claim 11 , wherein: the set of data comprises an offset applied from a location in the first one of the plurality of forwarding databases.

16

16. A method of learning an entry in a forwarding database (FDB), the method comprising: applying a hash function to data comprising an address to generate a hash; using a first subset of the hash to select an entry in a lookup table associated with the FDB; determining, from the entry, a first offset; identifying a location in the FDB using the first subset of the hash; identifying an available entry within the first offset from the location in the FDB; and updating the FDB at the available entry with forwarding information associated with the data.

17

17. The method of claim 16 , further comprising: identifying a second offset from the location in the FDB to the available entry; and updating the entry in the lookup table by associating a second subset of the hash with the second offset.

18

18. The method of claim 16 , further comprising: applying the hash function to a second set of data comprising an address to generate a second hash; determining, with use of a first subset of the second hash and a second subset of the second hash, that the FDB does not contain a second available entry for the second set of data; identifying the second available entry in a second forwarding database; and updating the second available entry in the second forwarding database with forwarding information associated with the second set of data.

19

19. The method of claim 16 , wherein the available entry comprises an entry that is determined to be invalid because of aging.

20

20. An apparatus for forwarding data packets as indicated by a forwarding database (FDB), the apparatus comprising: an ingress port; a plurality of egress ports; a parsing engine configured to identify a first set of data comprising an address from a packet received via the ingress port; and a forwarding database controller configured to: apply a hash function to the first set of data to generate a hash; use a first subset of the hash to select an entry in a lookup table; use a second subset of the hash to identify an offset within the entry; combine the offset with the first subset of the hash to identify an entry in the first FDB; and fetch the identified entry.

21

21. The apparatus of claim 20 , further comprising: a transmit unit configured to forward payload data associated with the first set of data to at least one port specified by the identified entry in the FDB.

22

22. The apparatus of claim 20 , wherein the forwarding database controller is further configured to: split the hash into first and second parts, the first part comprising the first subset and the second part comprising the second subset, wherein the second subset comprises all of the hash not included in the first subset.

23

23. The apparatus of claim 20 , wherein the forwarding database controller is further configured to: apply the hash function to a second set of data to generate a second hash; determine that the FDB does not contain valid forwarding directions, using at least a portion the second hash; and identify an entry in a second forwarding database, using at least a portion of the second set of data.

24

24. The apparatus of claim 20 , wherein the forwarding database controller is further configured to: search a second forwarding database; and determine that the second forwarding database does not have a valid entry corresponding to the first set of data, thereby triggering the use of the first subset of the hash to lookup the entry in the lookup table.

25

25. The apparatus of claim 20 , wherein the hash function comprises a cyclic redundancy check (CRC) hash.

26

26. The apparatus of claim 20 , wherein: the lookup table comprises a plurality of rows and is searchable by the first subset of the hash; the entry in the lookup table comprises one or more rows of the lookup table; and the second subset of the hash is compared with data in the one or more rows to thereby identify the offset.

27

27. The apparatus of claim 20 , wherein the forwarding database controller is further configured to: match the second subset of the hash to data within the entry, wherein the data is associated with the data comprising the offset.

28

28. The apparatus of claim 20 , wherein the forwarding database controller is further configured to: manipulate data produced by applying the hash function to create the hash.

29

29. The apparatus of claim 20 , wherein the apparatus is selected from the group consisting of a bridge, a switch, and a router.

30

30. An apparatus fetching a forwarding entry by accessing a plurality of forwarding databases, the apparatus comprising: an ingress port; a plurality of egress ports; a parsing engine configured to identify data comprising an address from a packet received via the ingress port; and a forwarding database controller configured to: apply a hash function to the data to generate a hash; use a first subset of the hash to select an entry in a lookup table associated with a first one of the plurality of forwarding databases; use a second subset of the hash to search the entry for an offset applicable to the first one of the plurality of forwarding databases; determine that the first one of the plurality of forwarding databases does not provide valid forwarding directions; and use at least a part of the data to identify a forwarding entry in a second one of the plurality of forwarding databases.

31

31. The apparatus of claim 30 , further comprising a transmit unit configured to forward payload bits disposed in the data to one or more egress ports specified by the forwarding entry.

32

32. The apparatus of claim 30 , wherein the second one of the plurality of forwarding databases is stored in Ternary Content Addressable Memory (TCAM).

33

33. The apparatus of claim 32 , wherein the TCAM includes a plurality of searchable keys and the data is matched with a first one of the plurality of searchable keys to identify the forwarding entry.

34

34. The apparatus of claim 30 , wherein the forwarding database controller is further configured to: apply the offset to a location in the first one of the plurality of forwarding databases, the location identified by the first subset of the hash; and identify an invalid forwarding entry in the first forwarding database with application of the offset.

35

35. An apparatus for learning an entry in a forwarding database (FDB), the apparatus comprising a forwarding database controller configured to: apply a hash function to data comprising an address to generate a hash; use a first subset of the hash to select an entry in a lookup table associated with the FDB; determine, from the entry, a maximum first offset; identify a location in the FDB using the first subset of the hash; identify an available entry within the first offset from the location in the FDB; and update the FDB at the available entry with forwarding information associated with the data.

36

36. The apparatus of claim 35 , wherein the forwarding database controller is further configured to: identify a second offset from the location in the FDB to the available entry; and update the entry in the lookup table by associating a second subset of the hash with the second offset.

37

37. The apparatus of claim 35 , wherein the forwarding database controller is further configured to: apply the hash function to a second set of data comprising an address to generate a second hash; determine, with use of a first subset of the second hash and a second subset of the second hash, that the FDB does not contain a second available entry for the second set of data; identify the second available entry in a second forwarding database; and update the second available entry in the second forwarding database with forwarding information associated with the second set of data.

38

38. The apparatus of claim 35 , wherein the available entry comprises an entry that is determined to be invalid because of aging.

Patent Metadata

Filing Date

Unknown

Publication Date

December 14, 2010

Inventors

Yaniv Kopelman
Ruven Torok
Dan Aharoni

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “DOUBLE-HASH LOOKUP MECHANISM FOR SEARCHING ADDRESSES IN A NETWORK DEVICE” (7852850). https://patentable.app/patents/7852850

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.