IP Library Granted Patent US 8,688,853
Granted Patent B2
US 8,688,853 · App. 10/037,067 · Granted Apr 1, 2014

Method and apparatus for maintaining multicast lists in a data network

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 8,688,853
App. No.
10/037,067
Granted
Apr 1, 2014
Kind
B2
Abstract

A multicast group list (i.e., destination node address list) for a network device is circularly linked such that the list can be entered at any point and traversed back to the entry point. The list traversal is then terminated as the entire list has been processed. The data packet received at the network device for transmission to the multicast group can indicate the entry point, although there are other techniques for determining the entry point. The destination node address for the entry point is skipped, that is the multicast data packet is not transmitted to the entry point destination address.

Claims (45)

1. A method for transmitting multicast data to destination nodes of a given multicast session in a network having a plurality of nodes, comprising:

forming a circularly linked list comprising a plurality of entries corresponding to respective destination nodes for receiving multicast data, each entry of the circularly linked list comprising a link to another entry in the list corresponding to another destination node;

receiving the multicast data intended for transmittal to the destination nodes of the given multicast session;

entering the circularly linked list at an initial entry corresponding to an initial destination node;

traversing the circularly linked list using the links of respective entries of the circularly linked list until the initial entry is reached and, for each entry of the circularly linked list other than the initial entry, sending the multicast data to the corresponding destination node such that the initial destination node is excluded from the given multicast session; and

dynamically modifying the circularly linked list without interrupting traversal of the circularly linked list, wherein modifying the circularly linked list comprises at least one of adding to and deleting from the plurality of entries in the circularly linked list;

wherein destination nodes for a plurality of multicast sessions are interleaved in the circularly linked list, and wherein the destination nodes for each one of the plurality of multicast sessions are circularly linked;

wherein entries in the circularly linked list corresponding to respective ones of the destination nodes in the given multicast session are associated with a thread of corresponding status bits;

wherein the status bits for entries in the circularly linked list corresponding to respective ones of the destination nodes in the given multicast session are set active during traversal of the circularly linked list; and

wherein dynamically modifying the circularly linked list without interrupting traversal of the circularly linked list comprises clearing the status bits for entries in the circularly linked list which are added or removed.

2. The method of claim 1 wherein the received data includes an indicator identifying the destination node that is to be excluded from the given multicast session.

3. The method of claim 2 wherein the indicator identifies the destination node from which the data was received as the destination node to be excluded from the given multicast session.

4. The method of claim 1 wherein the initial destination node is predetermined.

5. The method of claim 1 further comprising receiving data intended for transmittal to the destination nodes of the given multicast session on an input port, and wherein the initial destination node is determined based on the input port.

6. The method of claim 1 wherein the initial destination node is the destination node from which the data was received such that the destination node from which the data was received is excluded from the given multicast session.

7. The method of claim 1 wherein each entry of the circularly linked list further comprises a destination address associated with the corresponding destination node, and wherein sending the multicast data to the corresponding destination node comprises sending the multicast data to the destination address associated with the corresponding destination node.

8. The method of claim 1 wherein each entry of the circularly linked list further comprises one or more data transmission parameters associated with the corresponding destination node, and wherein sending the multicast data to the corresponding destination node comprises sending the multicast data according to the one or more data transmission parameters associated with the corresponding destination node.

9. A method for transmitting multicast data to destination nodes for a given multicast session in a network having a plurality of nodes, comprising:

forming a multicast group list comprising a queue further comprising a circularly linked list comprising a plurality of entries corresponding to respective destination nodes, wherein each entry of the circularly linked list includes a link to another entry in the list corresponding to another destination node;

receiving the multicast data intended for transmittal to the destination nodes of the given multicast session;

entering the circularly linked list at an initial entry corresponding to an initial destination node destination node;

traversing the circularly linked list using the links of respective entries of the circularly linked list and, for each entry of the circularly linked list other than the initial entry, sending the multicast data to the corresponding destination node such that the initial destination node is excluded from the given multicast session; and

dynamically modifying the circularly linked list without interrupting traversal of the circularly linked list, wherein modifying the circularly linked list comprises at least one of adding to and deleting from the plurality of entries in the circularly linked list;

wherein destination nodes for a plurality of multicast sessions are interleaved in the circularly linked list, and wherein the destination nodes for each one of the plurality of multicast sessions are circularly linked;

wherein entries in the circularly linked list corresponding to respective ones of the destination nodes in the given multicast session are associated with a thread of corresponding status bits;

wherein the status bits for entries in the circularly linked list corresponding to respective ones of the destination nodes in the given multicast session are set active during traversal of the circularly linked list; and

wherein dynamically modifying the circularly linked list without interrupting traversal of the circularly linked list comprises clearing the status bits for entries in the circularly linked list which are added or removed.

10. The method of claim 9 wherein the received data includes an indicator identifying the destination node that is to be excluded from the given multicast session.

11. The method of claim 10 wherein the indicator identifies the destination node from which the data was received as the destination node to be excluded from the given multicast session.

12. The method of claim 9 wherein the initial destination node is predetermined.

13. The method of claim 9 further comprising receiving data intended for transmittal to the destination nodes of the given multicast session on an input port, and wherein the initial destination node is determined based on the input port.

14. An apparatus for transmitting multicast data to destination nodes of a given multicast session in a network having a plurality of nodes, comprising:

a memory operative to store a circularly linked list comprising a plurality of entries corresponding to respective destination nodes, each entry of the circularly linked list comprising a link to another entry in the list corresponding to another destination node; and

a processor operative to perform the operations of:

receiving multicast data intended for transmittal to the destination nodes of the given multicast session;

entering the circularly linked list at an initial entry corresponding to an initial destination node;

traversing the circular linked list using the links of respective entries of the circularly linked list until the initial entry is reached, and for each entry of the circularly linked list other than the initial entry, sending the multicast data to the corresponding destination node such that the initial destination node is excluded from the given multicast session; and

dynamically modifying the circularly linked list without interrupting traversal of the circularly linked list, wherein modifying the circularly linked list comprises at least one of adding to and deleting from the plurality of entries in the circularly linked list

wherein destination nodes for a plurality of multicast sessions are interleaved in the circularly linked list, and wherein the destination nodes for each one of the plurality of multicast sessions are circularly linked;

wherein entries in the circularly linked list corresponding to respective ones of the destination nodes in the given multicast session are associated with a thread of corresponding status bits;

wherein the status bits for entries in the circularly linked list corresponding to respective ones of the destination nodes in the given multicast session are set active during traversal of the circularly linked list; and

wherein dynamically modifying the circularly linked list without interrupting traversal of the circularly linked list comprises clearing the status bits for entries in the circularly linked list which are added or removed.

15. The apparatus of claim 14 further comprising receiving data intended for transmittal to the destination nodes of the given multicast session on an input port, and wherein the initial destination node is determined based on the input port.

16. The apparatus of claim 14 wherein each entry of the circularly linked list further comprises a destination address associated with the corresponding destination node, and wherein sending the multicast data to the corresponding destination node comprises sending the multicast data to the destination address associated with the corresponding destination node.

17. The apparatus of claim 14 wherein each entry of the circularly linked list further comprises one or more data transmission parameters associated with the corresponding destination node, and wherein sending the multicast data to the corresponding destination node comprises sending the multicast data according to the one or more data transmission parameters associated with the corresponding destination node.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded Nov 18, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034286/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2014
From: AGERE SYSTEMS LLC
To: LSI CORPORATION
Reel/Frame 034245/0655 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
CERTIFICATE OF CONVERSION Recorded Feb 7, 2014
From: AGERE SYSTEMS INC.
To: AGERE SYSTEMS LLC
Reel/Frame 032170/0487 →
MERGER Recorded Feb 7, 2014
From: AGERE SYSTEMS GUARDIAN CORP.
To: AGERE SYSTEMS INC.
Reel/Frame 032173/0172 →