IP Library Granted Patent US 7,743,108
Granted Patent B2
US 7,743,108 · App. 12/139,007 · Granted Jun 22, 2010

Method and apparatus for reducing pool starvation in a shared memory switch

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,743,108
App. No.
12/139,007
Granted
Jun 22, 2010
Kind
B2
Abstract

Reducing pool starvation in a switch is disclosed. The switch includes a plurality of egress ports, and a reserved pool of buffers in a shared memory. The reserved pool of buffers is one of a number of reserved pools of buffers, and the reserved pool of buffers is reserved for one of the egress ports. A shared pool of buffers and a multicast pool of buffers are in the shared memory. The shared pool of buffers is shared by the egress ports.

Claims (29)

1. A method for allocating a buffer from one of a multicast pool, a shared pool, and a reserved pool, the reserved pool being one of a number of reserved pools, and the method comprising the steps of:

receiving a number of buffer pool selection determinants, said selection determinants including counter status information, multicast packet identification information, and egress port forwarding information, said egress port forwarding information dependent upon a header of an accepted data packet to be stored in a buffer, and said multicast packet identification information contained in said header;

selecting one of the multicast pool, the shared pool and the reserved pool from which to allocate the buffer for data based on said selection determinants, wherein said egress port forwarding information only having direct consequence on the selecting one of the multicast pool, the shared pool and the reserved pool when the selecting is from the reserved pools; and

allocating the buffer from the selected pool in a shared memory.

2. The method as claimed in claim 1 wherein the multicast packet identification information includes a multicast tag indicating whether a received data packet is a multicast data packet.

3. The method as claimed in claim 2 wherein the egress port forwarding information includes a forward vector indicating which egress port to forward a data packet.

4. The method as claimed in claim 1 wherein the counter status information includes at least one of the following: total free counter, multicast free counter, shared free counter, reserved free counter, a plurality of port reserve pool counters, and at least one queue reserved threshold counter.

5. The method as claimed in claim 1 further comprising:

determining how shared memory is divided to reduce the probability of dropping data packets.

6. A switch comprising:

a plurality of egress ports;

a reserved pool of buffers in a shared memory, the reserved pool of buffers being one of a number of reserved pools of buffers, and the reserved pool of buffers being reserved for one of the egress ports;

a shared pool of buffers in the shared memory, the shared pool of buffers shared by the egress ports;

a multicast pool of buffers in the shared memory;

an information receiver for receiving a number of buffer pool selection determinants, said selection determinants including counter status information, multicast packet identification information, and egress port forwarding information, said egress port forwarding information dependent upon a header of an accepted data packet to be stored in a buffer, and said multicast packet identification information contained in said header; and

logic for selecting one of the multicast pool, the shared pool and the reserved pool from which to allocate the buffer for data based on said selection determinants, wherein said egress port forwarding information only having direct consequence on the selecting one of the multicast pool, the shared pool and the reserved pool when the logic selects from the reserved pools, wherein the buffer is allocated from the selected pool in the shared memory.

7. The switch as claimed in claim 6 wherein the multicast packet identification information includes a multicast tag indicating whether a received data packet is a multicast data packet.

8. The switch as claimed in claim 7 wherein the egress port forwarding information includes a forward vector indicating which egress port to forward a data packet.

9. The switch as claimed in claim 6 wherein the counter status information includes at least one of the following: total free counter, multicast free counter, shared free counter, reserved free counter, a plurality of port reserve pool counters, and at least one queue reserved threshold counter.

10. The switch as claimed in claim 6 wherein the shared pool of buffers can store data to be forwarded to any of the egress ports.

11. The switch as claimed in claim 6 further comprising a plurality of ingress ports.

12. The switch as claimed in claim 11 wherein the multicast pool of buffers can store IP Multicast packets received from any of the ingress ports to be forwarded to at least one of the egress ports to members of an IP Multicast group.

13. A switch comprising:

pools of buffers including a multicast pool, a shared pool, and a plurality of reserved pools in a shared memory;

hardware component means for receiving a number of buffer pool selection determinants, said selection determinants including counter status information, multicast packet identification information, and egress port forwarding information, said egress port forwarding information dependent upon a header of an accepted data packet to be stored in a buffer, and said multicast packet identification information contained in said header; and

logic for selecting one of the multicast pool, the shared pool and a reserved pool of the plurality of the reserved pools from which to allocate the buffer for data based on said selection determinants, wherein said egress port forwarding information only having direct consequence on the selecting one of the multicast pool, the shared pool and the reserved pool when the logic selects from the plurality of the reserved pools, wherein the buffer is allocated from the selected pool in the shared memory.

14. The switch as claimed in claim 13 wherein the multicast packet identification information includes a multicast tag indicating whether a received data packet is a multicast data packet.

15. The switch as claimed in claim 14 wherein the egress port forwarding information includes a forward vector indicating which egress port to forward a data packet.

16. The switch as claimed in claim 13 wherein the counter status information includes at least one of the following: total free counter, multicast free counter, shared free counter, reserved free counter, a plurality of port reserve pool counters, and at least one queue reserved threshold counter.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2020
From: CPPIB CREDIT INVESTMENTS INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 054278/0333 →
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 Jun 16, 2008
From: BROWN, DAVID A., MR.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 021099/0578 →