IP Library Granted Patent US 7,277,426
Granted Patent B2
US 7,277,426 · App. 10/156,725 · Granted Oct 2, 2007

Method and apparatus for reordering entries in a multi probe lookup

View Patent ↗
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 7,277,426
App. No.
10/156,725
Granted
Oct 2, 2007
Kind
B2
Abstract

A multi-probe lookup table includes an indication of the congestion level of each addressable location. A key can be stored in one of a plurality of indexed locations in the lookup table. Thrashing is reduced by inserting keys into the lookup table based on the distribution of keys already stored in the lookup table. Insert operations for all keys sharing an indexed location are recorded by modifying a swap count indicating the congestion level of the indexed location each time a key is inserted in one of the indexed locations.

Claims (31)

1. A network switch comprising:

ingress ports and egress ports;

a plurality of tables on a storage medium on the network switch storing forwarding decisions for data packets forwarded from ingress ports to egress ports, a number of the tables each being separately indexed by a different index computed from a key, each indexed location storing a swap count, the swap count providing an indication of the congestion level of the indexed location;

insert logic on the network switch which, upon detecting that all locations identified by the computed indexes are used, inserts a new entry by overwriting the current entry stored in the indexed location storing the lowest swap count and updates the swap counts in each of the indexed locations; and

control on the network switch that forwards data packets to the egress ports according to the forwarding decisions stored in the plurality of tables on the storage medium on the network switch.

2. The network switch as claimed in claim 1 wherein the insert logic updates the swap counts by incrementing a first swap count associated with the overwritten indexed location and decrementing second swap counts associated with the other indexed locations.

3. The network switch as claimed in claim 1 wherein upon detecting a plurality of indexed locations storing the lowest swap count, one of the indexed locations is randomly selected for inserting the new entry.

4. The network switch as claimed in claim 2 wherein the first swap count is incremented by the number of second swap counts and each of the second swap counts is decremented by one.

5. The network switch as claimed in claim 4 wherein the number of second swap counts is 3.

6. A method for storing entries in a network switch comprising the steps of:

providing ingress ports and egress ports;

providing a plurality of tables on a storage medium on the network switch storing forwarding decisions for forwarding data packets among the ingress ports and the egress ports, a number of the tables each being separately indexed by a different index computed from a key;

storing a swap count in each indexed location, the swap count providing an indication of the congestion level of the indexed location;

upon detecting that all indexed locations identified by the computed indexes are used, inserting a new entry by overwriting the current entry stored in the indexed location storing the lowest swap count;

updating the swap counts in each of the indexed locations; and

forwarding data packets to the egress ports according to the forwarding decisions stored in the plurality of tables on the storage medium on the network switch.

7. The method as claimed in claim 6 wherein the step of updating the swap counts comprises the steps of:

incrementing a first swap count associated with the overwritten indexed location; and

decrementing second swap counts associated with the other indexed locations.

8. The method as claimed in claim 6 wherein, upon detecting a plurality of indexed locations storing the lowest swap count, one of the indexed locations is randomly selected for inserting the new entry.

9. The method as claimed in claim 7 wherein the first swap count is incremented by the number of second swap counts and each of the second swap counts is decremented by one.

10. The method as claimed in claim 9 wherein the number of second swap counts is 3.

11. A network switch comprising:

ingress ports and egress ports;

a plurality of tables on a storage medium on the network switch storing forwarding decisions for data rackets forwarded from the ingress ports and to egress ports, a number of the tables each being separately indexed by a different index computed from a key, each indexed location storing a swap count, the swap count providing an indication of the congestion level of the indexed location;

means on the network switch for inserting which, upon detecting that all locations identified by the computed indexes are used, inserts a new entry by overwriting the current entry stored in the indexed location storing the lowest swap count and updates the swap counts in each of the indexed locations; and

means on the network switch for forwarding data rackets to the egress ports according to the forwarding decisions stored in the plurality of tables on the storage medium on the network switch.

12. The network switch as claimed in claim 11 wherein the means for inserting updates the swap counts by incrementing a first swap count associated with the overwritten indexed location and decrementing second swap counts associated with the other indexed locations.

13. The network switch as claimed in claim 11 wherein upon detecting a plurality of indexed locations storing the lowest swap count, one of the indexed locations is randomly selected for inserting the new entry.

14. The network switch as claimed in claim 12 wherein the first swap count is incremented by the number of second swap counts and each of the second swap counts is decremented by one.

15. The network switch as claimed in claim 14 wherein the number of second swap counts is 3.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2020
From: CPPIB CREDIT INVESTMENTS INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 054279/0001 →
RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Oct 12, 2018
From: ROYAL BANK OF CANADA, AS LENDER
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 047645/0424 →
AMENDED AND RESTATED U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Aug 22, 2018
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CPPIB CREDIT INVESTMENTS, INC.
Reel/Frame 046900/0136 →
U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Sep 9, 2014
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CPPIB CREDIT INVESTMENTS INC., AS LENDER; ROYAL BANK OF CANADA, AS LENDER
Reel/Frame 033706/0367 →
CHANGE OF ADDRESS Recorded Sep 3, 2014
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 033678/0096 →
RELEASE OF SECURITY INTEREST Recorded Aug 7, 2014
From: ROYAL BANK OF CANADA
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.; CONVERSANT IP N.B. 868 INC.; CONVERSANT IP N.B. 276 INC.
Reel/Frame 033484/0344 →
CHANGE OF NAME Recorded Mar 13, 2014
From: MOSAID TECHNOLOGIES INCORPORATED
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 032439/0638 →
U.S. INTELLECTUAL PROPERTY SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) - SHORT FORM Recorded Jan 10, 2012
From: 658276 N.B. LTD.; 658868 N.B. INC.; MOSAID TECHNOLOGIES INCORPORATED
To: ROYAL BANK OF CANADA
Reel/Frame 027512/0196 →
CHANGE OF ADDRESS OF ASSIGNEE Recorded Apr 15, 2009
From: MOSAID TECHNOLOGIES INCORPORATED
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 022542/0876 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2002
From: BROWN, DAVID A.
To: MOSAID TECHNOLOGIES, INC.
Reel/Frame 013152/0733 →