IP Library Granted Patent US 8,724,657
Granted Patent B2
US 8,724,657 · App. 13/205,420 · Granted May 13, 2014

System and method for offloading packet protocol encapsulation from software

Inventors: Kaushik Kuila (San Jose, CA); David T. Hass (Santa Clara, CA); Ahmed Shahid (San Jose, CA)
Assignee: NetLogic Microsystems, Inc.
H04L49/901H04L49/9021H04L49/9042
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,724,657
App. No.
13/205,420
Granted
May 13, 2014
Kind
B2
Abstract

A method and system of packet assembly is provided. The method includes providing a first packet descriptor. The first packet descriptor is a pointer-to-pointer (P2P) descriptor that includes pointer information. The method further includes retrieving a first pointer referenced by the pointer information of the first packet descriptor; providing the first pointer to a DMA engine; and using the DMA engine to retrieve packet data referenced by the first pointer.

Claims (53)

1. A method of packet assembly, comprising:

sending a first packet descriptor from a first FIFO to a second direct memory access (DMA) engine, wherein the first packet descriptor is a pointer-to-pointer (P2P) packet descriptor that includes pointer information, and the second DMA engine uses the first packet descriptor to retrieve a first pointer;

retrieving the first pointer referenced by the pointer information of the first packet descriptor,

providing the first pointer to a first DMA engine;

using the first DMA engine to retrieve packet data referenced by the first pointer;

sending a second packet descriptor from the first FIFO to the first DMA engine, wherein the second packet descriptor is a pointer-to-data (P2D) packet descriptor that includes a second pointer;

using the first DMA engine to retrieve packet data referenced by the second pointer; and

storing the first and second packet descriptors in the first FIFO.

2. The method of claim 1 , further comprising:

storing the first pointer in a second FIFO, wherein providing the first pointer to the first DMA engine comprises sending the first pointer from the second FIFO to the first DMA engine.

3. The method of claim 2 , further comprising:

storing the retrieved packet data referenced by the second pointer in a third FIFO; and

transmitting the retrieved packet data referenced by the second pointer via an interface coupled to the third FIFO.

4. The method of claim 1 , further comprising:

transmitting the packet data referenced by the second pointer.

5. The method of claim 4 , further comprising:

upon transmitting the packet data referenced by the second pointer, sending the first packet descriptor to a central processing unit (CPU); and

at the CPU, determining that the transmitting is complete based on the first packet descriptor.

6. The method of claim 5 , wherein:

the CPU is one of a plurality of CPUs coupled via a network; and

sending the first packet descriptor to the CPU comprises providing the first packet descriptor to the CPU via the network.

7. The method of claim 4 , further comprising:

upon transmitting the packet data referenced by the second pointer, recycling a buffer associated with the transmitted packet data referenced by the second pointer, the recycling comprising setting an identifier in the first packet descriptor.

8. The method of claim 1 , wherein sending the second packet descriptor from the first FIFO to the first DMA engine comprises queuing the second packet descriptor in a second FIFO.

9. The method of claim 1 , wherein the pointer information of the first packet descriptor comprises a pointer to an array of packet descriptors that includes the first pointer, the method further comprising:

providing the array of packet descriptors to the second DMA engine; and

using the second DMA engine to retrieve respective packet data referenced by respective packet descriptors of the array of packet descriptors.

10. A processor, comprising:

a first direct memory access (DMA) engine to receive pointer-to-pointer (P2P) packet descriptors that include respective pointer information and to retrieve pointers referenced by the respective pointer information;

a second DMA engine to receive the pointers referenced by the respective pointer information and to retrieve packet data referenced by the pointers;

a first FIFO, coupled to the first DMA engine, to store the packet descriptors and provide the packet descriptors to the first DMA engine;

a second FIFO, having an input coupled to the first DMA engine and an output coupled to the second DMA engine, to store the pointers and provide the pointers to the second DMA engine; and

a multiplexer having a first input coupled to the first DMA engine, a second input coupled to the first FIFO, and an output coupled to the second FIFO;

wherein the first FIFO is configured to receive both the P2P packet descriptors and pointer-to-data (P2D) packet descriptors that include pointers that reference the packet data retrieved by the second DMA engine; and

the multiplexer is configurable to provide the pointers retrieved by the first DMA engine to the second FIFO in a first setting and to provide the P2D packet descriptors to the second FIFO in a second setting.

11. The processor of claim 10 , further comprising:

a third FIFO, coupled to the second DMA engine, to store the packet data retrieved by the second DMA engine; and

an interface, coupled to the third FIFO, to transmit the packet data retrieved by the second DMA engine.

12. The processor of claim 10 , further comprising:

a plurality of CPUs configurable to transmit the P2P packet descriptors to the first FIFO; and

a network to couple the plurality of processors to the first FIFO.

13. The processor of claim 12 , wherein the network comprises a messaging network.

14. The processor of claim 12 , further comprising;

a third FIFO, coupled between the second DMA engine and the messaging network, to send the P2P packet descriptors to respective CPUs upon transmission of corresponding packet data.

15. A system, comprising:

a first direct memory access (DMA) engine to receive a pointer-to-pointer (P2P) packet descriptor that includes pointer information and to retrieve a pointer referenced by the pointer information;

a second DMA engine to receive the pointer and to retrieve packet data referenced by the pointer;

a first FIFO, coupled to the first DMA engine;

a second FIFO, having an input coupled to the first DMA engine and an output coupled to the second DMA engine; and

a multiplexer having a first input coupled to the first DMA engine, a second input coupled to the first FIFO, and an output coupled to the second FIFO;

wherein the first FIFO is configured to receive the P2P packet descriptor and a pointer-to-data (P2D) packet descriptor; and

the multiplexer is configurable to provide the pointer retrieved by the first DMA engine to the second FIFO in a first setting and to provide the P2D packet descriptor to the second FIFO in a second setting.

16. The system of claim 15 , further comprising a fast message network coupled to at least one of the first or second FIFO.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER PREVIOUSLY RECORDED ON REEL 047642 FRAME 0417. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT, Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048521/0395 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047642/0417 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2014
From: KUILA, KAUSHIK; HASS, DAVID T; SHAHID, AHMED
To: RMI CORPORATION
Reel/Frame 032507/0214 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2014
From: RMI CORPORATION
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 032507/0476 →
Continuity (2)
Continuation 12120082 · May 13, 2008
Related Publication 20120027029A1 · Feb 2, 2012