IP Library Granted Patent US 9,244,798
Granted Patent B1
US 9,244,798 · App. 13/164,533 · Granted Jan 26, 2016

Programmable micro-core processors for packet parsing with packet ordering

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 9,244,798
App. No.
13/164,533
Granted
Jan 26, 2016
Kind
B1
Abstract

Disclosed is an approach for implementing a flexible parser for a networking system. A micro-core parser is implemented to process packets in a networking system. The micro-cores of the parser read the packet headers, and perform any suitably programmed tasks upon those packets and packet headers. One or more caches may be associated with the micro-cores to hold the packet headers. A dependency list is used to maintain proper ordering of packets being processed by the micro-cores.

Claims (32)

1. A system for processing packets, comprising:

a plurality of micro-cores configured to process the packets; and

a memory to store a dependency list comprising a structure configured to maintain an order in which the packets are to be processed and released,

wherein the dependency list comprises a plurality of rows and a plurality of columns,

wherein each micro-core of the plurality of micro-cores is associated with a corresponding row from among the plurality of rows and a corresponding column from among the plurality of columns,

wherein the corresponding row is configured to hold data identifying whether a given packet associated with the corresponding row has dependencies on one or more other packets, and

wherein the corresponding column is configured to hold data identifying whether a given packet associated with the corresponding column creates dependencies for one or more other packets.

2. The system of claim 1 , wherein the structure is further configured to hold a bit vector associated with a packet, from among the packets, that is being processed by a micro-core from among the plurality of micro-cores,

wherein bits in the bit vector identify an existence of a dependency.

3. The system of claim 1 , wherein the memory comprises content addressable memory.

4. A method to maintain ordering when processing packets, comprising:

using a plurality of micro-cores to process the packets; and

maintaining an order in which the packets are to be processed and released using a dependency list stored in a memory, the dependency list comprising a structure having a set of rows and a set of columns to maintain the order in which the packets are to be processed and released,

wherein each micro-core from the plurality of micro-cores is associated with both a corresponding row from the set of rows and a corresponding column from the set of columns,

wherein the corresponding row holds data identifying whether a given packet associated with the corresponding row has dependencies on one or more other packets, and

wherein the corresponding column holds data identifying whether a given packet associated with the corresponding column creates dependencies for one or more other packets.

5. The method of claim 4 , wherein the corresponding row holds a bit vector associated with a packet, from among the packets, that is being processed by a micro-core from among the plurality of micro-cores,

wherein bits in the bit vector identify an existence of a dependency.

6. The method of claim 5 , wherein each bit of the bit vector corresponds to the dependency for a different packet.

7. The method of claim 4 , further comprising:

receiving a packet from among the packets for processing by a micro-core from among the plurality of micro-cores;

associating the corresponding row with the micro-core; and

adding a value in the corresponding row to indicate whether the packet has a dependency on another packet.

8. The method of claim 7 , wherein the value comprises a bit vector with bit values that correspond to rows from among the set of rows associated with other micro-cores from among the plurality of micro-cores.

9. The method of claim 4 , further comprising:

receiving a request to release a packet, from among the packets, that was processed by a micro-core from among the plurality of micro-cores;

checking a row from the set of rows associated with the micro-core to identify a dependency for the packet on another packet from among the packets; and

releasing the packet if the dependency is not identified.

10. The method of claim 9 , wherein a bit vector in the row is checked to identify a value indicating the dependency.

11. The method of claim 9 , wherein a second packet from among the packets is dependent on the packet, and a second row from among the set of rows is associated with the second packet,

wherein a value in the second row indicates a dependency of the second packet on the packet, and wherein release of the packet causes a value in the second row to be modified to indicate no further dependency on the packet.

12. The system of claim 1 , wherein, based on the dependency list, the plurality of micro-cores is configured to release a later packet from among the packets from a flow after an earlier packet, from among the packets, from the flow has been processed.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
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 Aug 19, 2011
From: KUILA, KAUSHIK; HASS, DAVID T.
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 026780/0840 →