IP Library › Granted Patent US 7,774,497
Granted Patent B2
US 7,774,497 · App. 11/819,962 · Granted Aug 10, 2010

Apparatus and method for classifier identification

Assignee: Broadcom Corporation
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,774,497
App. No.
11/819,962
Granted
Aug 10, 2010
Kind
B2
Abstract

A method for classifying an incoming packet. The method includes maintaining a database associated with patterns of fields, where the fields can be network addresses. The database can be developed by mapping each pattern to a unique numeric identifier. The number of unique numeric identifiers is equal to the number of patterns, and the size of each unique numeric identifier is substantially smaller than the field of each pattern. The database can be further developed by determining a range of one or more of the unique numeric identifiers to be associated with each pattern. The range for each pattern can be bounded by a minimum unique numeric identifier and a maximum unique numeric identifier. The method also includes using a field of the incoming packet to determine an associated identifier for that field, where the associated identifier is equal to one of the unique numeric identifiers. The associated identifier can then be matched with one or more of the ranges for the patterns, and the method can then determine how to process the incoming packet.

Claims (36)

1. A method for classifying an incoming packet, comprising:

maintaining a database associated with one or more patterns of fields, wherein the database is developed by:

mapping each pattern to a unique numeric identifier, wherein the number of unique numeric identifiers is equal to the number of patterns, and wherein a size of each unique numeric identifier is less than the field of each pattern; and

determining a range of one or more of the unique numeric identifiers to be associated with each pattern, wherein the range is bounded by a minimum unique numeric identifier and a maximum unique numeric identifier;

using a field of the incoming packet to determine an associated identifier for that field, wherein the associated identifier is equal to one of the unique numeric identifiers;

matching the associated identifier assigned to the field of the incoming packet with one or more of the ranges; and

determining how to process the incoming packet based on the matching.

2. The method of claim 1 , wherein the fields of the patterns and the fields of the incoming packets are network addresses.

3. The method of claim 1 , wherein the incoming packet has more than one field, and wherein the act of using a field of the incoming packet to determine an associated identifier is carried out for each of the fields of the incoming packet.

4. The method of claim 1 , further comprising:

if the associated identifier matches one of the ranges bounded by different unique numeric identifiers, determining priority among the unique numeric identifiers in the range and selecting the highest priority for processing.

5. The method of claim 1 , wherein the database is a trie.

6. The method of claim 5 , wherein the size of each numeric identifier is equal to the largest integer greater than log 2 N, where N is the number of unique patterns.

7. The method of claim 5 , wherein the trie is developed using a depth-first, binary traversal of the patterns.

8. The method of claim 1 , wherein using a field of the incoming packet to determine an associated identifier includes using a longest-prefix matching (LPM) process.

9. The method of claim 1 , further comprising:

maintaining a second database associated with the one or more patterns of fields; and exchanging the second database for the database.

10. The method of claim 1 , wherein using a field of the incoming packet to determine an associated identifier includes looking up the associated identifier using addressable memory.

11. The method of claim 1 , wherein the database is developed by constructing a trie, wherein leaves of the trie are developed by:

selecting a highest bit to correspond to a root leaf; and

parsing through one of the fields of one of the patterns from left to right to develop child leaves.

12. A method for developing a database of patterns of fields for use in packet classification, comprising:

mapping each pattern to a unique numeric identifier, wherein the number of unique numeric identifiers is equal to the number of patterns, and wherein a size of each unique numeric identifier is less than the field of each pattern;

determining a range of one or more of the unique numeric identifiers to be associated with each pattern, wherein the range is bounded by a minimum unique numeric identifier and a maximum unique numeric identifier;

using a field of an incoming packet to determine an associated identifier for that field, wherein the associated identifier is equal to one of the mapped unique numeric identifiers in the database; and

matching the associated identifier assigned to the field of the incoming packet with one or more of the ranges.

13. The method of claim 12 , further comprising;

building a trie based on the fields of the patterns to develop the database.

14. The method of claim 13 , wherein mapping each pattern includes associating one of the unique numeric identifiers to each terminal node of the trie.

15. An apparatus for classifying an incoming packet, comprising:

a database associated with one or more patterns of fields, wherein the database is developed by:

mapping each pattern to a unique numeric identifier, wherein the number of unique numeric identifiers is equal to the number of patterns, and wherein a size of each unique numeric identifier is less than the field of each pattern; and

determining a range of one or more of the unique numeric identifiers to be associated with each pattern, wherein the range is bounded by a minimum unique numeric identifier and a maximum unique numeric identifier;

means for using a field of the incoming packet to determine an associated identifier for that field, wherein the associated identifier is equal to one of the unique numeric identifiers;

means for matching the associated identifier assigned to the field of the incoming packet with one or more of the ranges; and

means for determining how to process the incoming packet based on the matching.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2007
From: SANDBURST CORPORATION
To: BROADCOM CORPORATION
Reel/Frame 019552/0904 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2007
From: HORGAN, NICK
To: SANDBURST CORPORATION
Reel/Frame 019552/0908 →
Continuity (3)
Division 1065015400 · Aug 28, 2003
Provisional Application 6049016500 · Jul 25, 2003
Related Publication 20080052300A1 · Feb 28, 2008