IP Library Granted Patent US 7,260,095
Granted Patent B1
US 7,260,095 · App. 10/739,874 · Granted Aug 21, 2007

Technique for deallocation of memory in a multicasting environment

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,260,095
App. No.
10/739,874
Granted
Aug 21, 2007
Kind
B1
Abstract

A technique deallocates memory in a multicasting environment, such as within a network device. The technique involves tracking the slowest member of a plurality of multicast members designated to receive an input packet or flow and, other than a deallocation request presented by the slowest member, blocking all deallocation requests from being allowed.

Claims (60)

1. A method for deallocating a memory in a networking device, the method comprising the steps of:

reading an input flow to identify a multicast flow;

determining a plurality of members for the multicast flow;

creating a pointer for each of the plurality of members;

designating one of the plurality of members as a slowest member;

marking as slow the pointer of the slowest member;

reading-out packets of the multicast flow from the memory of the networking device to the plurality of members for the multicast flow;

receiving a deallocation request from each of the plurality of members;

examining the pointer associated with each of the plurality of members making the deallocation request; and

fulfilling the deallocation request for the pointer marked as slow.

2. The method according to claim 1 further including, before the step of reading, the step of writing-in packets of the input flow to the memory of the networking device.

3. The method according to claim 1 wherein the step of reading further includes simultaneously writing-in packets of the input flow to the memory of the networking device.

4. The method according to claim 1 wherein the step of designating further includes arbitrarily designating the slowest member from among the plurality of members.

5. The method according to claim 1 wherein the step of reading-out further includes the steps of:

evaluating, after each packet read-out, the pointer for each of the plurality of members for the multicast flow to check whether the pointer of the slowest member has changed;

comparing, if the pointer of the slowest member has changed, a previous pointer of the slowest member to the pointers from all other members of the plurality of members of the multicast flow;

assigning, if the previous pointer matches one or more of the other members' pointers, a new member from among the matching members as a new slowest member; and

re-marking as slow the pointer of the new slowest member.

6. The method according to claim 5 wherein the step of assigning further includes arbitrarily assigning the new slowest member from among the matching members.

7. A system for deallocating a memory in a networking device comprising:

means for reading an input flow to identify a multicast flow;

means for determining a plurality of members for the multicast flow;

means for creating a pointer for each of the plurality of members;

means for designating one of the plurality of members as a slowest member;

means for marking as slow the pointer of the slowest member;

means for reading-out packets of the multicast flow from the memory of the networking device to the plurality of members for the multicast flow;

means for receiving a deallocation request from each of the plurality of members;

means for examining the pointer associated with each of the plurality of members making the deallocation request; and

means for fulfilling the deallocation request for the pointer marked as slow.

8. The system according to claim 7 further including, before the means for reading, means for writing-in packets of the input flow to the memory of the networking device.

9. The system according to claim 7 wherein the means for reading further includes means for simultaneously writing-in packets of the input flow to the memory of the networking device.

10. The system according to claim 7 wherein the means for designating further includes means for arbitrarily designating the slowest member from among the plurality of members.

11. The system according to claim 7 wherein the means for reading-out further includes:

means for evaluating, after each packet read-out, the pointer for each of the plurality of members for the multicast flow to check whether the pointer of the slowest member has changed;

means for comparing, if the pointer of the slowest member has changed, a previous pointer of the slowest member to the pointers from all other members of the plurality of members of the multicast flow;

means for assigning, if the previous pointer matches one or more of the other members' pointers, a new member from among the matching members as a new slowest member; and

means for re-marking as slow the pointer of the new slowest member.

12. The system according to claim 11 wherein the means for assigning further includes means for arbitrarily assigning the new slowest member from among the matching members.

13. A method for deallocating a memory in a networking device, the method comprising the steps of:

determining a plurality of members for a multicast flow;

creating a pointer for each of the plurality of members;

designating one of the plurality of members as a slowest member;

marking as slow the pointer of the slowest member;

reading-out packets of the multicast flow from the memory of the networking device to the plurality of members for the multicast flow, wherein the step of reading-out further includes the steps of:

evaluating, after each packet read-out, the pointer for each of the plurality of members for the multicast flow to check whether the pointer of the slowest member has changed;

comparing, if the pointer of the slowest member has changed, a previous pointer of the slowest member to the pointers from all other members of the plurality of members of the multicast flow;

assigning, if the previous pointer matches one or more of the other members' pointers, a new member from among the matching members as a new slowest member; and

re-marking as slow the pointer of the new slowest member; and

fulfilling a deallocation request from each of the plurality of members for the pointer marked as slow.

14. A system for deallocating a memory in a networking device, comprising:

means for determining a plurality of members for a multicast flow;

means for creating a pointer for each of the plurality of members;

means for designating one of the plurality of members as a slowest member;

means for marking as slow the pointer of the slowest member;

means for reading-out packets of the multicast flow from the memory of the networking device to the plurality of members for the multicast flow, and further including:

means for evaluating, after each packet read-out, the pointer for each of the plurality of members for the multicast flow to check whether the pointer of the slowest member has changed;

means for comparing, if the pointer of the slowest member has changed, a previous pointer of the slowest member to the pointers from all other members of the plurality of members of the multicast flow;

means for assigning, if the previous pointer matches one or more of the other members' pointers, a new member from among the matching members as a new slowest member; and

means for re-marking as slow the pointer of the new slowest member; and

means for fulfilling a deallocation request from each of the plurality of members for the pointer marked as slow.

Assignments (15)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0097. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048555/0510 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0097 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
CHANGE OF NAME Recorded Apr 16, 2015
From: NETLOGIC MICROSYSTEMS, INC.
To: NETLOGIC I LLC
Reel/Frame 035443/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2015
From: NETLOGIC I LLC
To: BROADCOM CORPORATION
Reel/Frame 035443/0763 →
RELEASE OF SECURITY INTEREST Recorded Sep 2, 2011
From: VENTURE LENDING & LEASING, INC
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 026855/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2010
From: RMI CORPORATION
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 023926/0338 →
CHANGE OF NAME Recorded Jun 23, 2008
From: RAZA MICROELECTRONICS, INC.
To: RMI CORPORATION
Reel/Frame 021139/0126 →
CHANGE OF NAME Recorded Apr 4, 2008
From: RAZA MICROELECTRONICS, INC.
To: RZMI CORPORATION
Reel/Frame 020762/0212 →
CHANGE OF NAME Recorded Apr 4, 2008
From: RAZA MICROELECTRONICS, INC.
To: RZMI CORPORATION
Reel/Frame 020762/0206 →
CHANGE OF NAME Recorded Feb 26, 2008
From: RAZA MIRCROELECTRONICS, INC
To: RMI CORPORATION
Reel/Frame 020555/0859 →
SECURITY INTEREST Recorded Apr 24, 2007
From: RAZA MICROELECTRONICS, INC.
To: VENTURE LENDING & LEASING IV, INC.
Reel/Frame 019224/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2004
From: NARVAEZ, PAOLO
To: RAZA MICROELECTRONICS, INC.
Reel/Frame 015435/0960 →