EP1547342B1

A method and apparatus for deep packet processing

Abstract

This record has no abstract on file.

EP1547342B1, drawing sheet 1
Sheet 1 of 12

Term

Term ended

Expired 26 June 2023, 3.2 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

8 claims: 4 independent, 4 dependent

  1. 1
    A method for parsing an input word chain in a data packet and/or for searching the value of an input word chain pattern from a data packet, the parsing operation being defined by a programmable state machine implemented with a state table in which each entry contains a current state and the next state, said method comprising, - reducing the number of entries of the state table by including in each entry a test vector for testing next state and ordering said entries in a resulting transition rule table;- indexing the transition rule table using a hash index extracted from state and input chain word according to the BaRT compression scheme (compressed index), the indexed transition rule table (compressed table) being split into blocks in which each entry has the same hash index;- arbitrarily splitting the indexed transition rule table into at least one table (600, 610) formed of the indexed transition rule table entries corresponding to at least one state;- extending each entry in the at least one split indexed transition rule table with an index mask used to compute next state hash index value and a base pointer field which may contain the address (SP1, SP2) of an indexed transition rule table;said parsing and/or searching method further comprising, - initializing (1100) the current state, the current index mask and the current base pointer with values that correspond to the first indexed transition rule table involved in the parse and/or search operation;- selecting (1110) the first input word as the current input word to be analyzed;- computing (1120) the hash index value to select the entry-block in the indexed transition rule table pointed to by the current base pointer;- searching a matching entry (1130) within the selected entry-block, by comparing the test vector in each entry against the current state and current input word and testing if a matching entry found;- if (1140) a match is not found the method ends;- if (1140) a match is found testing if (1150) the entry read is final and - if the entry read is final and if the method is for parsing, a end-state (S3, S5) of the state machine has been found as the result of parsing and the method ends;- if the entry read is final and if the method is for searching, a value ( R ) has been found and the method ends;- if (1150) the entry read is not final (1150), - initializing current index mask and the current base pointer from the matching entry and selecting next word as the current input word to be analyzed, - repeating extracting searching and testing steps until a final entry is found and the method ends, a end-state and/or a value being found if a match has been found.
  2. 6
    An apparatus for deep packet processing comprising means adapted for implementing the steps of the method according to anyone of claims 1 to 5.
  3. 7
    A chip embedded apparatus comprising means adapted for implementing the steps of the method according to anyone of claims 1 to 5.
  4. 8
    A computer program product comprising programming code instructions for executing the steps of the method according to anyone of claims 1 to 5 when said program is executed on a computer.