IP Library Granted Patent US 7,032,072
Granted Patent B1
US 7,032,072 · App. 10/039,992 · Granted Apr 18, 2006

Method and apparatus for fast lookup of related classification entities in a tree-ordered classification hierarchy

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,032,072
App. No.
10/039,992
Granted
Apr 18, 2006
Kind
B1
Abstract

A method and apparatus for performing classification in a hierarchical classification system performing caching are described. In one embodiment, the method comprises walking a classification tree in the hierarchical classification system to determine whether an incoming flow matches a class in the classification tree, and performing a lookup on a cache storing a data structure of multiple classes of one classification type to compare the incoming flow with multiple classes at the same time to determine whether the incoming flow matches one of the classes.

Claims (45)

1. In a hierarchical classification system including a classification tree comprising a plurality of traffic classes, wherein at least one traffic class of the plurality of traffic classes corresponds to a first classification type and at least one other traffic class in the plurality of traffic classes corresponds to a second classification type, wherein the classification tree further comprises a cache storing a data structure representing a cacheable portion of the classification tree, wherein the data structure corresponds to the at least one traffic class of the first classification type, a method comprising:

walking the classification tree to determine whether an incoming flow matches a traffic class in the classification tree; and

upon encountering the cacheable portion of the classification tree, performing a lookup on the cache to compare the incoming flow with of the at least one traffic class of the first classification type to determine whether the incoming flow matches one of the at least one traffic class.

2. The method defined in claim 1 wherein the data structure comprises a hash table.

3. The method defined in claim 1 further comprising returning a class pointer indicative of user programming information that has been assigned to a traffic class if the incoming flow matches the traffic class.

4. The method defined in claim 1 further characterized by performing a walk through the plurality of traffic classes in the classification tree if a determination that the traffic class in the at least one traffic class is not known as a result of performing the cache lookup.

5. The method defined in claim 4 wherein if the incoming flow hits the cache, then further comprising:

returning a result indicating the incoming flow was in the cache.

6. The method defined in claim 4 wherein if the incoming flow hits the cache and no traffic class is identified, further comprising:

continuing to walk the classification tree from a location in the classification tree immediately after the end of the cacheable portion of the classification tree represented in the cache.

7. The method of claim 1 further comprising

conditionally walking, if no entry is found in the data structure, the cacheable portion of the classification tree to match the incoming flow to the at least one traffic class, and then:

creating, if the incoming flow does not match one of the at least one traffic class in the cacheable portion of the classification tree, an entry in the data structure indicating that the incoming flow, relative to the first classification type, does not match a traffic class in the cacheable portion; or

creating, if the incoming flow matches one of the at least one traffic class in the cacheable portion of the classification tree, an entry in the data structure, based on the first classification type, corresponding to the incoming flow and the matching traffic class.

8. An apparatus for use in a hierarchical classification system performing caching, the apparatus comprising:

a memory storing a classification tree comprising a plurality of traffic classes, wherein at lease one traffic class in the plurality of traffic classes corresponds to a first classification type and at least one other traffic class in the plurality of traffic classes corresponds to a second classification type;

a cache operative to store a cacheable portion of the classification tree, wherein the cacheable portion of the classification tree corresponds to at least one traffic class in the plurality of traffic classes of the first classification type; and

a classification engine coupled to the memory to walk the classification tree as to determine whether an incoming flow matches a traffic class in the classification tree, and, when the cacheable portion of the classification tree is encountered, to perform a lookup on the cache to determine whether the incoming flow matches one of the at least one traffic classes of the first classification type.

9. The apparatus defined in claim 8 wherein the data structure comprises a hash table.

10. The apparatus defined in claim 8 wherein the classification engine returns a class pointer indicative of user programming information that has been assigned to a traffic class if the incoming flow matches the traffic class.

11. The apparatus defined in claim 8 wherein the classification engine performs a walk through the cacheable portion of the classification tree if a determination that the traffic class corresponding to the incoming flow is not known as a result of performing the cache lookup.

12. The apparatus defined in claim 11 wherein if the incoming flow matches a traffic class corresponding to a cacheable portion of the classification tree, then the classification engine:

creates an entry in the data structure including an attribute of the incoming flow defined by the first classification type and the matching traffic class; and

returns a result indicating the matching traffic class.

13. The apparatus defined in claim 11 wherein if the incoming flow does not match a traffic class in the cacheable portion of the classification tree, then the classification engine:

creates an entry in the data structure including an attribute of the incoming flow defined by the first classification type and an indication that the class is not in the cache; and

continues to walk the classification tree from a location in the tree immediately after the end of the cacheable portion of the classification tree represented in the cache.

14. An apparatus for use in a hierarchical classification system performing caching, the apparatus comprising:

a memory storing a classification tree comprising a plurality of traffic classes, wherein at lease one traffic class in the plurality of traffic classes corresponds to a first classification type and at least one other traffic class in the plurality of traffic classes corresponds to a second classification type;

a cache operative to store a cacheable portion of the classification tree, wherein the cacheable portion of the classification tree corresponds to at least one traffic class in the plurality of traffic classes of the first classification type; and

a classification engine operative to:

determine, relative to the first classification type, whether the cache contains an entry matching an incoming flow;

conditionally walk, if no entry is found in the cache, the cacheable portion of the classification tree to match the incoming flow to the at least one traffic class, and then:

create, if the incoming flow does not match one of the at least one traffic class in the cacheable portion of the classification tree, an entry in the cache indicating that the incoming flow, relative to the first classification type, does not match a traffic class in the cacheable portion; or

create, if the incoming flow hits one of the at least one traffic class in the cacheable portion of the classification tree, an entry in the cache, based on the first classification type, corresponding to the incoming flow and the matching traffic class.

15. The apparatus of claim 14 wherein the cache comprises a hash table.

16. In a hierarchical classification system performing caching, a method for classifying a flow comprising:

ordering a classification tree including a plurality traffic classes, wherein at least one traffic class corresponds to a first classification type, and wherein at least another traffic class corresponds to a second classification types by grouping at least a portion of the traffic classes of each type together in the classification tree;

creating a it data structure, representing a first cacheable portion of the classification tree, of a plurality of traffic classes of the first classification type to facilitate determination of whether the flow matches any traffic classes in the first data structure;

creating a second data structure, representing a second cacheable portion of the classification tree, of a plurality of traffic classes of the second classification type to facilitate determination of whether the flow matches any traffic classes in the second data structure.

17. The method defined in claim 16 wherein the first data structure comprises a hash table.

18. The method defined in claim 16 wherein the first classification type in the classification tree includes network addresses.

19. The method defined in claim 18 wherein the second classification type in the classification tree includes one or more network services.

20. The method defined in claim 19 wherein the second classification type in the classification tree further include on or more ports.

21. The method defined in claim 18 wherein the network addresses comprise Internet Protocol (IP) addresses.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2016
From: BLUE COAT SYSTEMS, INC.
To: SYMANTEC CORPORATION
Reel/Frame 039851/0044 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2016
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 039516/0929 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 30740/0181 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035797/0280 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 27727/0144 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035798/0006 →
SECURITY INTEREST Recorded May 22, 2015
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS THE COLLATERAL AGENT
Reel/Frame 035751/0348 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 3, 2013
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 030740/0181 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 027727/0178 Recorded Oct 16, 2012
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 029140/0170 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 16, 2012
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 027727/0144 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 16, 2012
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 027727/0178 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2011
From: PACKETEER, INC.
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 027307/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2002
From: QUINN, MICHAEL J.; LAIER, MARY L.
To: PACKETEER, INC.
Reel/Frame 012701/0664 →