Code generating system for improved pattern matching in a protocol analyzer
First Claim
1. A code generating system for improved pattern matching in a protocol analyzer, said system comprising:
- an interface in said protocol analyzer to monitor a plurality of protocol data units on a communication link;
a pattern set in said protocol analyzer;
a pattern relationship analyzer to identify a pattern relationship for each pair of patterns in said pattern set; and
a program code generator to generate executable code unique to said pattern relationship for each of said pair of patterns in said pattern set such that said executable code requires a minimum number of comparisons to determine a match between said pattern set and at least one segment of one of said plurality of protocol data units.
8 Assignments
0 Petitions
Accused Products
Abstract
A machine code generating system for improved pattern matching in a protocol analyzer. The code generating system includes a pattern relationship analysis phase and a pattern matching code generation phase. The pattern relationship analysis phase includes evaluating pairs of test patterns to determine the relationship that exists between each pair such as superset, subset, independent, external, and identical. The pattern matching code generation phase includes generating general pattern matching code in addition to generating specialized comparison code that is specific to the types of relationships that exist among a given set of patterns. The machine code that is generated, organizes the patterns into groups to minimize the number of pattern matching comparisons required to a minimum defined in the average case as the sum of the number of patterns and the maximum number of words per pattern. The machine code generated by the code generating system is ready to execute at the completion of the code generating system operation.
-
Citations
29 Claims
-
1. A code generating system for improved pattern matching in a protocol analyzer, said system comprising:
-
an interface in said protocol analyzer to monitor a plurality of protocol data units on a communication link; a pattern set in said protocol analyzer; a pattern relationship analyzer to identify a pattern relationship for each pair of patterns in said pattern set; and a program code generator to generate executable code unique to said pattern relationship for each of said pair of patterns in said pattern set such that said executable code requires a minimum number of comparisons to determine a match between said pattern set and at least one segment of one of said plurality of protocol data units. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A code generating system for improved pattern matching in a protocol analyzer, the system comprising:
-
an interface in the protocol analyzer to monitor a plurality of protocol data units on a communication link; a pattern set in the protocol analyzer; a pattern relationship analyzer to identify a pattern relationship for each pair of patterns in the pattern set; and a program code generator to generate executable code that includes an unrolled recursive call tree having a minimum of external function calls to enhance run-time performance of the executable code, the executable code being unique to the pattern relationship for each pair of patterns in the pattern set such that the executable code requires a minimum number of comparisons to determine a match between the pattern set and at least one segment of one of the plurality of protocol data units, the minimum number of comparisons including an arithmetic sum of a maximum number of words in any one pattern of said pattern set and a maximum number of patterns in said pattern set.
-
-
10. A code generating system for improved pattern matching in a protocol analyzer, the system comprising:
-
an interface in the protocol analyzer to monitor a plurality of protocol data units on a communication link; a pattern set in the protocol analyzer; a pattern relationship analyzer to identify a pattern relationship for each pair of patterns in the pattern set; and a program code generator to generate executable code unique to the pattern relationship for each pair of patterns in the pattern set such that the executable code requires a minimum number of comparisons to determine a match between the pattern set and at least one segment of one of the plurality of protocol data units, the program code generator including; a pattern matching code generator to identify a pattern P having no subset patterns and generate at least one decision logic block to rule-in and rule-out subsequent pattern comparisons in view of the pattern P; and a specialization comparison code generator to generate at least one decision logic block for special case ones of the pattern relationship.
-
-
11. A method of generating computer executable code for improved pattern matching in a protocol analyzer, said method comprising:
-
monitoring a plurality of protocol data units on a communication link by way of a protocol analyzer; generating at least one pattern set for use in said protocol analyzer; identifying a pattern relationship for each pair of patterns in a selected one of said at least one pattern set; and generating executable code unique to said pattern relationship for each of said pair of patterns such that said executable code requires a minimum number of comparisons to determine a match between said selected one of said at least one pattern set and at least one segment of one of said plurality of protocol data units. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method of generating computer executable code for improved pattern matching in a protocol analyzer, the method comprising:
-
monitoring a plurality of protocol data units on a communication link by way of a protocol analyzer; generating a pattern set for use in the protocol analyzer; identifying a pattern relationship for each pair of patterns in the pattern set; and generating executable code that includes an unrolled recursive call tree having a minimum of external function calls to enhance run-time performance of the executable code, the executable code being unique to the pattern relationship for each pair of patterns such that the executable code requires a minimum number of comparisons to determine a match between the pattern set and at least one segment of one of the protocol data units, the minimum number of comparisons including an arithmetic sum of a maximum number of words in any one pattern of said pattern set and a maximum number of patterns in said pattern set.
-
-
19. A method of generating computer executable code for improved pattern matching in a protocol analyzer, the method comprising:
-
monitoring a plurality of protocol data units on a communication link by way of a protocol analyzer; generating a pattern set for use in the protocol analyzer; identifying a pattern relationship for each pair of patterns in the pattern set; and generating executable code unique to the pattern relationship for each pair of patterns by executing a pattern matching code process to identify a pattern P having no subset patterns and generate at least one decision logic block to rule-in and rule-out subsequent pattern comparisons in view of said pattern P; and
executing a specialization comparison code generator to generate at least one decision logic block for special case ones of said pattern relationship such that the executable code requires a minimum number of comparisons to determine a match between the pattern set and at least one segment of one of the protocol data units.
-
-
20. A method comprising:
-
monitoring a plurality of protocol data units on a communication link by way of a protocol analyzer; generating a pattern set for pattern matching use in said protocol analyzer; identifying a pattern relationship for each pair of patterns in a selected one of said at least one pattern set, wherein said pattern relationship is selected from at least one of a group comprised of;
superset, subset, independent, exclusive, and identical; andgenerating executable code unique to said pattern relationship for each of said pair of patterns such that said executable code requires a minimum number of comparisons to determine a match between said selected one of said at least one pattern set and at least one segment of one of said plurality of protocol data units, wherein said executable code includes creating an unrolled recursive call tree having a minimum of external function calls to enhance run-time performance of said executable code, and wherein said minimum number of comparisons in said executable code is an arithmetic sum of a maximum number of words in any one pattern of said pattern set and a maximum number of patterns in said pattern set, and wherein said executable code includes a pattern matching code process to identify a pattern P having no subset patterns and generate at least one decision logic block to rule-in and rule-out subsequent pattern comparisons in view of said pattern P, and a specialization comparison code generator to generate at least one decision logic block for special case ones of said pattern relationship.
-
-
21. A computer-readable medium containing computer executable instructions that generate computer executable code for improved pattern matching in a protocol analyzer, the computer executable instructions comprising:
-
an instruction that monitors a plurality of protocol data units on a communication link by way of a protocol analyzer; an instruction that generates a pattern set for use in the protocol analyzer; an instruction that identifies a pattern relationship for each pair of patterns in the pattern set; and an instruction that generates executable code unique to the pattern relationship for each pair of patterns such that the executable code requires a minimum number of comparisons to determine a match between the pattern set and at least one segment of one of the protocol data units. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. A computer-readable medium containing computer executable instructions that generate computer executable code for improved pattern matching in a protocol analyzer, the computer executable instructions comprising:
-
an instruction that monitors a plurality of protocol data units on a communication link by way of a protocol analyzer; an instruction that generates a pattern set for use in the protocol analyzer; an instruction that identifies a pattern relationship for each pair of patterns in the pattern set; and an instruction that generates executable code that includes an unrolled recursive call tree having a minimum of external function calls to enhance run-time performance of the executable code, the executable code being unique to the pattern relationship for each pair of patterns such that the executable code requires a minimum number of comparisons to determine a match between the pattern set and at least one segment of one of the protocol data units.
-
-
29. A computer-readable medium containing computer executable instructions that generate computer executable code for improved pattern matching in a protocol analyzer, the computer executable instructions comprising:
-
an instruction that monitors a plurality of protocol data units on a communication link by way of a protocol analyzer; an instruction that generates a pattern set for use in the protocol analyzer; an instruction that identifies a pattern relationship for each pair of patterns in the pattern set; an instruction that generates executable code unique to the pattern relationship for each pair of patterns such that the executable code requires a minimum number of comparisons to determine a match between the pattern set and at least one segment of one of the protocol data units; an instruction that identifies a pattern P having no subset patterns and generates a decision logic block to rule-in and rule-out subsequent pattern comparisons in view of the pattern P; and an instruction that generates a decision logic block for special case ones of the pattern relationship.
-
Specification