IP Library Granted Patent US 7,616,662
Granted Patent B2
US 7,616,662 · App. 10/526,992 · Granted Nov 10, 2009

Parser for parsing data packets

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,616,662
App. No.
10/526,992
Granted
Nov 10, 2009
Kind
B2
Abstract

A parser system is arranged to receive a data stream ( 1 ) having interleaved sections derived from a plurality of different packets, and to extract data from each section as it arrives. The parser system has a scanning section which receives information about each of the sections of data defining which packet it relates to, and employs this information and the properties of the data stream, to identify the locations of layer ( 2 ), layer ( 3 ) and layer ( 4 ) data. This information is passed to parser units ( 7 ), ( 9 ) which extract data based on this data and also offsets. The offsets for the parser ( 7 ) are stored in user-programmable registers ( 9 ).

Claims (33)

1. A parser system comprising:

an interface configured to receive a data stream composed of interleaved sections of a plurality of different packets, and to receive section identity information about each of the sections of data defining to which packet it relates;

a scanning section configured to identify structural features of the packets using the section identify information, the structural features including the location of the start of one or more of layer 2 and layer 3 data in the packets; and

a parsing unit configured to process the data stream in a section-by-section manner and to employ the section identity information to identify and extract data from the sections of the plurality of different packets, the parsing unit comprising:

a first parser configured to extract data using offset information stored in user-programmable registers, the user offset information including an indication of whether data is to be extracted from the layer 2 or layer 3 data, and an indication of the location of the data to be extracted relative to the location of the start of the layer 2 or layer 3 data; and

a second parser configured to extract data from the packets in locations defined by the identified structural features of the packets and predetermined offset information.

2. The parser system according to claim 1 , wherein the scanning section is further configured to identify tagged packets.

3. The parser system of claim 2 wherein the scanning section is further configured to identify snapped packets.

4. The parser system according to claim 1 , wherein the interface is configured to receive a data stream including eight packets, each of which are divided into sections eight bytes in length, the sections of the eight packets being interleaved.

5. The parser system according to claim 4 , wherein the scanning section is further configured to calculate a set of variables for each eight bytes received, the set of variables including: a length variable which indicates the number of bytes received so far, an index variable which indicates the largest integer which is no greater than the length variable divided by eight, and an offset variable which indicates the length variable modulus eight.

6. The parser system according to claim 5 , wherein the scanning section is configured to identify, based on the set of variables calculated, the start of the layer 3 of the packets and whether the packets include a VLAN or SNAP tag.

7. The parser system according to claim 5 , wherein the first parser is configured to extract eight 16-bit local keys using the offset information stored in the user-programmable registers, and wherein the parsing unit is further configured to:

perform an AND operation on the extracted local keys and eight 16-bit masks;

perform an AND operation on the masks and eight 16-bit rules, and

compare the results of the AND operations to produce eight 1-bit results.

8. The parser system according to claim 7 , wherein the second parser is configured to extract a set of eight bits using the predetermined offset information provided in key selection registers, and wherein the parsing unit further comprises a combine unit configured to combine the set of eight bits and the eight 1-bit results to produce a final key.

9. A method of parsing a data stream using a computer including user-programmable registers, and a scanning section in communication with a first parser and a second parser, the method comprising:

receiving a data stream composed of interleaved sections of a plurality of different packets;

receiving section identity information about each of the sections of data defining which packet it relates to; and

processing the data stream in a section-by-section manner, said processing including:

using the scanning section to identify structural features of the packets using the section identity information, the structural features including the location of the start of one or more of layer 2 and layer 3 data in the packets

extracting, using the first parser, data from the sections of the plurality of different packets based on offset information stored in the user-programmable registers, the offset information including an indication of whether data is to be extracted from the layer 2 or layer 3 data, and an indication of the location of the data to be extracted relative to the location of the start of the layer 2 or layer 3 data; and

extracting, using the second parser, data from the sections of the plurality of different packets in locations defined by the identified structural features of the packets and predetermined offset information.

10. The method of claim 9 wherein the identifying structural features step includes identifying tagged packets.

11. The method of claim 10 wherein the identifying structural features step includes identifying snapped packets.

12. The method according to claim 9 , wherein receiving the data stream comprises receiving eight packets, each of which are divided into sections eight bytes in length, the sections of the eight packets being interleaved.

13. The method according to claim 12 , wherein identifying structural features comprises calculating a set of variables for each eight bytes received, the set of variables including: a length variable which indicates the number of bytes received so far, an index variable which indicates the largest integer which is no greater than the length variable divided by eight, and an offset variable which indicates the length variable modulus eight.

14. The method according to claim 13 , wherein identifying structural features comprises identifying, based on the set of variables calculated, the start of the layer 3 of the packets, and whether the packets include a VLAN or SNAP tag.

15. The method according to claim 12 , wherein extracting using a first parser comprises extracting eight 16-bit local keys based on the offset information stored in the user-programmable registers, the method further comprising:

performing an AND operation on the extracted local keys and eight 16-bit masks;

performing an AND operation on the masks and eight 16-bit rules, and

comparing the results of the AND operations to produce eight 1-bit results.

16. The method according to claim 15 , wherein extracting using the second parser comprises extracting a set of eight bits based on the predetermined offset information in key selection registers, the method further comprising combining the set of eight bits and the eight 1-bit results to produce a final key.

Assignments (5)
SECURITY AGREEMENT Recorded Jul 9, 2021
From: MAXLINEAR, INC.; MAXLINEAR COMMUNICATIONS, LLC; EXAR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 056816/0089 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2020
From: INTEL CORPORATION
To: MAXLINEAR, INC.
Reel/Frame 053626/0636 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: LANTIQ BETEILIGUNGS-GMBH & CO. KG
To: INTEL CORPORATION
Reel/Frame 053259/0678 →
MERGER AND CHANGE OF NAME Recorded Jan 17, 2018
From: LANTIQ DEUTSCHLAND GMBH; LANTIQ BETEILIGUNGS-GMBH & CO. KG
To: LANTIQ BETEILIGUNGS-GMBH & CO. KG
Reel/Frame 045086/0015 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 025413/0340 AND 025406/0677 Recorded Apr 17, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LANTIQ BETEILIGUNGS-GMBH & CO. KG
Reel/Frame 035453/0712 →