IP Library Patent Application 12757165
Patent Application
App. No. 12/757,165

Method and System for Forwarding and Switching Traffic in a Network Element

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/757,165
Abstract

A method for forwarding a packet may include generating, by a first hash function module, a first hash value based on data included within the packet. The method may also include generating, by a second hash function module, a second hash value based on data included within the packet. The method may additionally include determining, by a first hash region integral to a memory and associated with the first hash function module, whether an index location of the first hash region corresponding to the first hash value includes an entry. Moreover, the method may include determining, by a second hash region integral to a memory and associated with the second hash function module, whether an index location of the second hash region corresponding to the second hash includes an entry. The method may further include, in response to a determination that at least one of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value includes an entry, forwarding the packet based on forwarding information included within the entry.

Claims (45)

1 . A method for populating a forwarding table comprising:

generating, by a first hash function module, a first hash value based on data included within an entry to be inserted into a forwarding table;

generating, by a second hash function module, a second hash value based on data included within the entry to be inserted into the forwarding table;

determining, by a first hash region integral to a memory and associated with the first hash function module, whether an index location of the first hash region corresponding to the first hash value is empty;

determining, by a second hash region integral to a memory and associated with the second hash function module, whether an index location of the second hash region corresponding to the second hash value is empty; and

in response to a determination that at least one of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value is empty, inserting the entry into one of the empty index locations.

2 . A method according to claim 1 , further comprising, in response to a determination that neither of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value is empty, communicating an indication of a forwarding table clash.

3 . A method according to claim 1 , further comprising, in response to a determination that both of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value are empty:

selecting one of the empty index locations for insertion; and

inserting the entry into the selected index location.

4 . A method according to claim 3 , wherein selecting one of the empty index locations includes selecting the empty index location with the numerically lower index location.

5 . A method according to claim 1 , wherein the first hash function module performs a different hash function than the second hash function module.

6 . A method according to claim 1 , wherein the first hash region and the second hash region are of approximately equal capacity.

7 . A method for forwarding a packet, comprising:

generating, by a first hash function module, a first hash value based on data included within the packet;

generating, by a second hash function module, a second hash value based on data included within the packet;

determining, by a first hash region integral to a memory and associated with the first hash function module, whether an index location of the first hash region corresponding to the first hash value includes is populated;

determining, by a second hash region integral to a memory and associated with the second hash function module, whether an index location of the second hash region corresponding to the second hash includes is populated; and

in response to a determination that at least one of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value is populated, forwarding the packet based on forwarding information included within an entry included at a populated index location.

8 . A method according to claim 7 , further comprising, in response to a determination that neither of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value is populated, communicating an indication of a forwarding error.

9 . A method according to claim 1 , wherein the first hash function module performs a different hash function than the second hash function module.

10 . A method according to claim 1 , wherein the first hash region and the second hash region are of approximately equal capacity.

11 . A method according to claim 1 , wherein the data included within the packet includes the destination address of the packet.

12 . A method according to claim 1 , wherein the entry includes identification of an egress port.

13 . A network element, comprising:

a forwarding table comprising:

a first hash function module configured to generate a first hash value based on data received at the network element;

a second hash function module configured to generate a second hash value based on the data received at the network element; and

a memory communicatively coupled to the first hash function module and the second hash function module, the memory comprising:

a first hash region; and

a second hash region;

logic for determining whether an index location of the first hash region corresponding to the first hash value is populated;

logic for determining whether an index location of the second hash region corresponding to the first hash second is populated;

logic for, in response to a determination that at least one of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value is not populated, inserting an entry into one of the unpopulated index locations; and

logic for, in response to a determination that at least one of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value is populated, forwarding a packet based on forwarding information included within an entry included at a populated index location.

14 . A network element according to claim 13 , further comprising logic for, in response to a determination that both the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value are populated, communicating an indication of a forwarding table clash.

15 . A network element according to claim 13 , further comprising logic for, in response to a determination that both of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value are unpopulated:

selecting one of the unpopulated index locations for insertion; and

inserting the entry into the selected index location.

16 . A network element according to claim 15 , wherein selecting one of the unpopulated index locations includes selecting the unpopulated index location with the numerically lower index location.

17 . A network element according to claim 13 , further comprising, logic for, in response to a determination that neither of the index location of the first hash region corresponding to the first hash value and the index location of the second hash region corresponding to the second hash value is populated, communicating an indication of a forwarding error.

18 . A network element according to claim 13 , wherein the data included within the packet includes the destination address of the packet.

19 . A network element according to claim 13 , wherein the entry included at a populated index location includes identification of an egress port.

20 . A network element according to claim 13 , wherein the first hash function module performs a different hash function than the second hash function module.

21 . A network element according to claim 13 , wherein the first hash region and the second hash region are of approximately equal capacity.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2010
From: FUJITSU NETWORK COMMUNICATIONS, INC.
To: FUJITSU LIMITED
Reel/Frame 024765/0810 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2010
From: SINGH, BIJENDRA; SARIN, VIBHA; LI, HONG; GANESH, CHANDRA
To: FUJITSU NETWORK COMMUNICATIONS, INC.
Reel/Frame 024209/0704 →