IP Library Granted Patent US 7,548,992
Granted Patent B2
US 7,548,992 · App. 10/402,734 · Granted Jun 16, 2009

Method for preparing a decision tree for packet processing

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,548,992
App. No.
10/402,734
Granted
Jun 16, 2009
Kind
B2
Abstract

The invention relates to methods for processing data packets according to a set of rules, and especially for preparing of decision trees for selecting the correct rule for processing of a data packet. In preparation of a decision tree, a splitting point within a dimension being studied is chosen as follows. The rules are sorted to allow monotonous iteration through all range end values specified in the rules in the dimension being studied. The range end values are then iterated through in a monotonous fashion, either increasing or decreasing. At each iteration, the number of range low end values and the number of range high end values being equal to the current iteration value is counted. From these counts and the accumulated results from the corresponding counts in previous iterations, the numbers of rules with ranges in different positions relative to the current iteration value are deduced, and from these values, the goodness of the iteration value is calculated. After iteration of all range end values within the studied dimension, the iteration value with the best goodness is selected.

Claims (44)

1. Method for selection of a splitting point value for use in preparation of a decision tree on the basis of a set of packet processing rules for processing data packets, comprising at least the steps of:

selecting a splitting point candidate value from a set of rule parameter range end values in a parameter dimension being studied;

changing a first counter for each rule with a first range end value being equal to said selected candidate value;

changing a second counter for each rule with a second range end value being equal to said selected candidate value;

representing the relation of rules in comparison with the splitting point candidate by

a first value representing the number of rules whose both range end values are below the splitting point candidate;

a second value representing the number of rules whose low range end value is smaller than the splitting point candidate but whose high range end value is equal to the splitting point candidate;

a third value representing the number of rules whose low range end value is equal to the splitting point candidate but whose high range end value is larger than the splitting point candidate;

a fourth value representing the number of rules whose low range end value is lower than the splitting point candidate but whose high range end value is larger than the splitting point candidate; and

a fifth value representing the number of rules whose both range end values are higher than the splitting point candidate;

computing a goodness value for said selected candidate value at least partially on the basis of the values of said first and second counters; and

storing the goodness value for said selected candidate value in a computer readable medium.

2. A method according to claim 1 , further comprising at least the step of

repeating the steps recited in claim 1 for each unique value in a monotonous sequence in said set of rule parameter range end values.

3. A method according to claim 1 , further comprising at least the step of representing the relation of rules in comparison with a splitting point candidate by

a sixth value representing the number of rules having a point value in the studied dimension.

4. A computer-readable storage medium storing computer readable program code for causing a computer to perform the steps of:

selecting a splitting point candidate value from a set of rule parameter range end values in a parameter dimension being studied;

changing a first counter for each rule with a first range end value being equal to said selected candidate value;

changing a second counter for each rule with a second range end value being equal to said selected candidate value;

representing the relation of rules in comparison with the splitting point candidate by

a first value representing the number of rules whose both range end values are below the splitting point candidate;

a second value representing the number of rules whose low range end value is smaller than the splitting point candidate but whose high range end value is equal to the splitting point candidate;

a third value representing the number of rules whose low range end value is equal to the splitting point candidate but whose high range end value is larger than the splitting point candidate;

a fourth value representing the number of rules whose low range end value is lower than the splitting point candidate but whose high range end value is larger than the splitting point candidate; and

a fifth value representing the number of rules whose both range end values are higher than the splitting point candidate;

computing a goodness value for said selected candidate value at least partially on the basis of the values of said first and second counters; and

storing the goodness value for said selected candidate value in a computer readable medium.

5. An electronic device for processing of data packets according to a set of rules, comprising at least:

means for selecting a splitting point candidate value from a set of rule parameter range end values in a parameter dimension being studied;

means for changing a first counter for each rule with a first range end value being equal to said selected candidate value;

means for changing a second counter for each rule with a second range end value being equal to said selected candidate value,

means for representing the relation of rules in comparison with the splitting point candidate by

a first value representing the number of rules whose both range end values are below the splitting point candidate;

a second value representing the number of rules whose low range end value is smaller than the splitting point candidate but whose high range end value is equal to the splitting point candidate;

a third value representing the number of rules whose low range end value is equal to the splitting point candidate but whose high range end value is larger than the splitting point candidate;

a fourth value representing the number of rules whose low range end value is lower than the splitting point candidate but whose high range end value is larger than the splitting point candidate; and

a fifth value representing the number of rules whose both range end values are higher than the splitting point candidate; and;

means for computing a goodness value for said selected candidate value at least partially on the basis of the values of said first and second counters; and

means for storing the goodness value for said selected candidate value in a computer readable medium.

6. An electronic device according to claim 5 , wherein the device is an integrated circuit.

7. An electronic device according to claim 5 , wherein the device is a computer.

8. An electronic device according to claim 5 , wherein the device is an IPsec node.

9. An electronic device according to claim 5 , wherein the device is a firewall node.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: VERIMATRIX
To: RAMBUS INC.
Reel/Frame 051262/0413 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 21, 2019
From: GLAS SAS, AS AGENT
To: INSIDE SECURE
Reel/Frame 051076/0306 →
CHANGE OF ADDRESS Recorded Oct 16, 2019
From: VERIMATRIX
To: VERIMATRIX
Reel/Frame 050733/0003 →
CHANGE OF NAME Recorded Oct 7, 2019
From: INSIDE SECURE
To: VERIMATRIX
Reel/Frame 050647/0428 →
SECURITY INTEREST Recorded Feb 27, 2019
From: INSIDE SECURE
To: GLAS SAS, AS SECURITY AGENT
Reel/Frame 048449/0887 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2013
From: AUTHENTEC, INC.
To: INSIDE SECURE
Reel/Frame 029748/0128 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2012
From: OKSANEN, KENNETH
To: SSH COMMUNICATIONS SECURITY CORP.
Reel/Frame 028906/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2010
From: SAFENET, INC.
To: AUTHENTEC, INC.
Reel/Frame 024823/0745 →
PARTIAL RELEASE OF COLLATERAL Recorded Mar 19, 2010
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS FIRST AND SECOND LIEN COLLATERAL AGENT
To: SAFENET, INC.
Reel/Frame 024103/0730 →
CHANGE OF NAME Recorded Mar 5, 2008
From: SFNT FINLAND OY
To: SAFENET, INC.
Reel/Frame 020609/0987 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Apr 19, 2007
From: SAFENET, INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT
Reel/Frame 019181/0012 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Apr 16, 2007
From: SAFENET, INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT
Reel/Frame 019161/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2004
From: SSH COMMUNICATIONS SECURITY CORP.
To: SFNT FINLAND OY
Reel/Frame 015215/0805 →