IP Library Granted Patent US 7,006,495
Granted Patent B2
US 7,006,495 · App. 09/945,575 · Granted Feb 28, 2006

Transmitting multicast data packets

Assignee: Intel Corporation
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,006,495
App. No.
09/945,575
Granted
Feb 28, 2006
Kind
B2
Abstract

A method of transmitting data packets includes using one or more receive processors to receive a plurality of data packets from a network and processing the plurality of data packets using a management processor. The method also includes using one or more transmit processors to transmit packets to the network.

Claims (59)

1. A method comprising:

receiving a plurality of multicast packets;

storing the plurality of multicast packets and packet descriptors corresponding to each of the multicast packets in a memory, wherein the packet descriptors are stored in a multicast group queue portion of the memory and include a multicast group identifier, a source identifier, and a transmit count identifying a number of times the multicast packet must be transmitted so that each of a plurality of destinations associated with the multicast group identifier receives the multicast packet;

polling the multicast group queue portion of the memory to determine whether there are any available packet descriptors;

determining the plurality of destinations associated with an available packet descriptor by comparing the source identifier of the available packet descriptor to a destination index;

transmitting each of the multicast packets to the determined plurality of destinations;

decrementing the transmit count in the available packet descriptor each time a corresponding multicast packet is transmitted; and

allowing a portion of the memory associated with the available packet descriptor and a corresponding multicast packet to be overwritten when the transmit count in the available packet descriptor reaches a predetermined value.

2. A method as in claim 1 , further comprising:

excluding the source as a destination for each of the transmitted multicast packets.

3. A method as in claim 1 , wherein the received multicast packets are stored in a packet buffer portion of the memory.

4. A method as in claim 1 , further comprising:

enqueueing packet descriptors in a transmit queue portion of the memory when the source identifier and the destination index do not match.

5. A method as in claim 1 , further comprising:

prepending headers from a connection header table for each multicast packet to be transmitted.

6. A method as in claim 5 , further comprising:

sending updates to a forwarding table, a multicast group list and the connection header table.

7. A method as in claim 6 , wherein the multicast group list comprises a plurality of entries including multicast groups stored in the memory.

8. A method as in claim 6 , wherein the multicast group list comprises a plurality of entries, each entry identifying a destination connection index and a connection type.

9. An apparatus for transmitting data packets, comprising;

a processor that executes instructions; and

a memory that stores executable instructions for causing the processor to:

receive a plurality of multicast packets;

store the plurality of multicast packets and packet descriptors corresponding to each of the multicast packets in a memory, wherein the packet descriptors are stored in a multicast group queue portion of the memory and include a multicast group identifier, a source identifier, and a transmit count identifying a number of times the multicast packet must be transmitted so that each of a plurality of destinations associated with the multicast group identifier receives the multicast packet;

poll the multicast group queue portion of the memory to determine whether there are any available packet descriptors;

determine the plurality of destinations associated with an available packet descriptor by comparing the source identifier of the available packet descriptor to a destination index;

transmit each of the multicast packets to the determined plurality of destinations;

decrement the transmit count in the available packet descriptor each time a corresponding multicast packet is transmitted; and

allow a portion of the memory associated with the available packet descriptor and a corresponding multicast packet to be overwritten when the transmit count in the available packet descriptor reaches a predetermined value.

10. An apparatus as in claim 9 , wherein the memory further stores instructions to cause the processor to:

exclude the source as a destination for the transmitted multicast packets.

11. An apparatus as in claim 9 , wherein the received multicast packets are stored in a packet buffer portion of the memory.

12. An apparatus as in claim 9 , wherein the memory further stores instructions to cause the processor to:

enqueue packet descriptors in a transmit queue portion of the memory when the source identifier and the destination index do not match.

13. An apparatus as in claim 9 , wherein the memory further stores instructions to cause the processor to:

prepend headers from a connection header table for each multicast packet to be transmitted.

14. An apparatus as in claim 13 , wherein the memory further stores instructions to cause the processor to:

send updates to a forwarding table, a multicast group list and the connection header table.

15. An apparatus as in claim 14 , wherein the multicast group list comprises a plurality of entries including multicast groups stored in the memory.

16. An apparatus as in claim 14 , wherein the multicast group list comprises a plurality of entries, each entry identifying a destination connection index and a connection type.

17. An article comprising a machine-readable medium which stores executable instructions to transmit data packets, the instructions causing a machine to:

receive a plurality of multicast packets;

store the plurality of multicast packets and packet descriptors corresponding to each of the multicast packets in a memory, wherein the packet descriptors are stored in a multicast group queue portion of the memory and include a multicast group identifier, a source identifier, and a transmit count identifying a number of times the multicast packet must be transmitted so that each of a plurality of destinations associated with the multicast group identifier receives the multicast packet;

poll the multicast group queue portion of the memory to determine whether there are any available packet descriptors;

determine the plurality of destinations associated with an available packet descriptor by comparing the source identifier of the available packet descriptor to a destination index;

transmit each of the multicast packets to the determined plurality of destinations;

decrement the transmit count in the available packet descriptor each time a corresponding multicast packet is transmitted; and

allow a portion of the memory associated with the available packet descriptor and a corresponding multicast packet to be overwritten when the transmit count in the available packet descriptor reaches a predetermined value.

18. An article as in claim 17 , further comprising instructions causing a machine to:

exclude the source as a destination for each of the transmitted multicast packets.

19. An article as in claim 17 , wherein the received multicast packets are stored in a packet buffer portion of the memory.

20. An article as in claim 17 , further comprising instructions causing a machine to:

enqueue packet descriptors in a transmit queue portion of the memory when the source identifier and the destination index do not match.

21. An article as in claim 17 , further comprising instructions causing a machine to:

prepend headers from a connection header table for each multicast packet to be transmitted.

22. An article as in claim 21 , further comprising instructions causing a machine to:

send updates to a forwarding table, a multicast group list and the connection header table.

23. An article as in claim 22 , wherein the multicast group list comprises a plurality of entries including multicast groups stored in the memory.

24. An apparatus as in claim 22 , wherein the multicast group list comprises a plurality of entries, each entry identifying a destination connection index and a connection type.

Assignments (3)
COLLATERAL ASSIGNMENT AND SECURITY Recorded Jun 6, 2003
From: INCEPTOR, INC.
To: SI VENTURE FUND II, L.P.; CROSSBOW VENTURE PARTNERS, L.P.; MI-2 CAPITAL LLC
Reel/Frame 014136/0738 →
RELEASE AND REASSIGNMENT Recorded Dec 11, 2002
From: SI VENTURE FUND II, L.P.
To: INCEPTOR, INC.
Reel/Frame 013580/0175 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2001
From: HOOPER, DONALD F.
To: INTEL CORPORATION
Reel/Frame 012155/0408 →
Continuity (1)
Related Publication 20030043803A1 · Mar 6, 2003