Parser Instructions for CPUs
AssigneeSiPanda Inc.
InventorTom Herbert
Life of this patent
Estimating the term…
Abstract
A system and method for a protocol parser that has native support for parsing TLVs and flag-fields and allow users to code in a language convenient to them and leverage standard tool chains and tools. The same parser source can be compiled to arbitrary software and hardware targets without code change and provide the highest performance possible given its capabilities.
Claims20
A parsing system for parsing protocol headers, the parsing system comprising one or more computers, one or more storage devices on which are stored instructions that are operable, one or more memory and a parser engine, one or more parse nodes, one or more protocol tables, and one or more parsers, wherein an instance of a parser is comprised of a set of parse nodes and protocol tables, wherein the one or more parse nodes provide rules for parsing one or more protocol headers and the one or more parse nodes including additional rules for processing a protocol, wherein the one or more protocol tables describe relationships between the one or more parse nodes, wherein the parser engine processes the one or more protocol headers in a data object or packet per the rules of the one or more parse nodes and the one or more protocol tables, wherein to parse the one or more protocol headers, the one or more parse nodes determines a length of the one or more protocol headers being processed and a type of a next protocol header to be processed, wherein the length of the one or more protocol headers is determined by the one or more parse nodes that defines a minimum length attribute to give a minimum length of the one or more protocol headers, and wherein for a variable size protocol header, the one or more parse nodes define a length function that calculates the length of the one or more protocol headers, and wherein the length function includes a value of a length field in the one or more protocol headers as input, wherein the one or more parse nodes define a next type function to determine a type of the next protocol header to process, where the next type function includes a value of a next protocol field in the one or more protocol headers as input, wherein the parser engine uses the type of the next protocol header as input to a lookup in the one or more protocol tables that returns a next parse node or null when there is no next parse node, wherein an offset of the next parse node to process is given by a sum of an offset of a current protocol header being processed and a length of the current protocol header being processed, wherein when processing completes for the one or more parse nodes, the parser engine transitions to process the next parse node, wherein parsing of the data object or the packet is complete when the parser engine determines there is no next parse node to process.
Dependencies are inferred from the claim text.