IP Library Granted Patent US 7,860,091
Granted Patent B2
US 7,860,091 · App. 12/289,914 · Granted Dec 28, 2010

Multi-part parsing in a network device

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,860,091
App. No.
12/289,914
Granted
Dec 28, 2010
Kind
B2
Abstract

Devices and methods for processing data are disclosed. An example network device includes a plurality of ports. Each port of the example network device is configured to receive data and to send processed data. The example network device further includes a multi-part parser in communication with the plurality of ports. In the example device, the multi-part parser is configured to parse received data. Further in the example device, the multi-part parser comprises a plurality of parsing blocks that are configured to serially parse the received data, where each parsing block is configured to parse particular values. Still further in the example device, each of the plurality of parsing blocks, except a first parsing block, receives parsed data from a prior parsing block with fields of the particular values at a zero offset position.

Claims (41)

1. A network device for processing data, the network device comprising:

a plurality of ports, each port being configured to receive data and to send processed data; and

a multi-part parser in communication with the plurality of ports, the multi-part parser being configured to parse received data,

wherein the multi-part parser comprises a plurality of parsing blocks configured to serially parse the received data, each parsing block being configured to parse particular values, and

wherein each of the plurality of parsing blocks, except a first parsing block, receives parsed data from a prior parsing block with fields of the particular values at a zero offset position.

2. The network device of claim 1 , wherein the plurality of parsing blocks comprises four parsing blocks.

3. The network device of claim 2 , wherein the four parsing blocks comprise respective parsing blocks configured to parse layer 2 values, tunnel values, layer 3 values and layer 4 values.

4. The network device of claim 1 , further comprising a plurality of inter-communication lines connecting the plurality of parsing blocks, wherein each parsing block, except the first parsing block, can be requested to omit its parsing by a signal sent via the inter-communication lines.

5. The network device of claim 1 , wherein the plurality of ports comprises a higher speed port and the network device further comprises a high speed parser configured to parse data received on the higher speed port.

6. The network device of claim 1 , wherein each of the plurality of parsing blocks has access to a search engine.

7. The network device of claim 1 , wherein the plurality of parsing blocks comprises a parsing block configured to de-encapsulate a received data packet.

8. A method for processing data in a network device, the method comprising:

receiving data at an ingress port of a network device;

parsing the received data by a multi-part parser; and

forwarding the parsed data to an egress port of the network device,

wherein parsing the received data comprises serially parsing the received data by a plurality of parsing blocks, each parsing block being configured to parse particular values, and

wherein each parsing block, except a first parsing block, receives parsed data from a prior parsing block with fields of the particular values at a zero offset position.

9. The method of claim 8 , further comprising:

storing, by a memory management unit, the received data in a memory external to the network device;

retrieving the received data from the memory; and

modifying the received data, if needed, based on determined attributes to produce processed data.

10. The method of claim 9 , wherein forwarding the parsed data comprises forwarding the processed data.

11. The method of claim 8 , wherein serially parsing the received data comprises serially parsing the received data by four parsing blocks.

12. The method of claim 11 , wherein parsing the received data by the four parsing blocks comprises:

parsing the received data by parsing blocks configured to parse, respectively, layer 2 values, tunnel values, layer 3 values and layer 4 values.

13. The method of claim 8 , further comprising:

receiving, at one parsing block, a signal sent by inter-communication lines from a prior parsing block; and

responsive to the signal, omitting parsing by the one parsing block.

14. The method of claim 8 , further comprising accessing, by each of the plurality of parsing blocks, a search engine.

15. The method of claim 8 , further comprising de-encapsulating, by one of the plurality of parsing blocks, a received data packet.

16. A network device for processing data, the network device comprising:

port means for receiving data and forwarding processed data; and

parsing means for parsing received data by a multi-part parser,

wherein the parsing means comprises means for serially parsing the received data through a plurality of parsing blocks, each parsing block being configured to parse particular values, and

wherein each parsing block, except a first parsing block, receives parsed data from a prior parsing block with fields of the particular values at a zero offset position.

17. The network device of claim 16 , wherein the means for serially parsing the received data comprises means for serially parsing the received data by four parsing blocks.

18. The network device of claim 16 , further comprising lookup means for performing a lookup search of tables to determine attributes of the received data.

19. The network device of claim 16 , further comprising modifying means for modifying retrieved, stored data, based on determined attributes to produce processed data.

20. The network device of claim 16 , further comprising memory means for:

storing, by a memory management unit, the received data in a memory external to the network device; and

retrieving, by the memory management unit, the stored data from the memory.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2009
From: LEE, DENNIS SUNGIK
To: BROADCOM CORPORATION
Reel/Frame 023043/0910 →