IP Library Granted Patent US 9,647,947
Granted Patent B2
US 9,647,947 · App. 14/152,817 · Granted May 9, 2017

Block mask register key processing by compiling data structures to traverse rules and creating a new rule set

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 9,647,947
App. No.
14/152,817
Granted
May 9, 2017
Kind
B2
Abstract

A packet classification system, methods, and corresponding apparatus are provided for enabling packet classification. A processor of a routing appliance coupled to a network compiles data structures to process keys associated with a particular block mask register (BMR) of a plurality of BMRs. For each BMR of the plurality of BMRs, the processor identifies at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields to be masked. The processor also builds at least one data structure used to traverse a plurality of rules based on the identified at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields to be masked.

Claims (53)

1. A method, executed by one or more processors, for compiling data structures to process keys associated with a block mask register (BMR) of a plurality of BMRs, the method comprising:

for each BMR of the plurality of BMRs:

identifying at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields to be masked;

building at least one data structure used to traverse a plurality of rules based on the identified at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields to be masked; and

creating a new rule set from the plurality of rules, wherein the identified at least one of or a combination of: i) the at least a portion of a field of the plurality of rules and ii) the subset of fields of the plurality of fields to be masked is masked from the new rule set.

2. The method of claim 1 further comprising:

mapping the new rule set to a corresponding data structure traversable on a plurality of rules only on the identified at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields to be masked.

3. The method of claim 1 further comprising:

for each BMR of the plurality of BMRs, mapping the at least one data structure to a single instance of a rules set, wherein the rule set is an n-tuple rule set and includes each field of the n-tuple rule set.

4. The method of claim 3 further comprising:

enabling a search processor to mask the identified at least one of or a combination of: i) the at least a portion of a field of the plurality of rules and ii) the subset of fields of the plurality of fields to be masked from the rules set based on information identifying a corresponding BMR associated with the at least one data structure; and

enabling search processor to mask the a search request key based on corresponding identified portion of a subject BMR of the plurality of BMRs passed with the search request key.

5. The method of claim 1 further comprising:

identifying a set of BMRs of the plurality of BMRs with intersecting fields;

grouping the identified set of BMRs into a group;

defining a group BMR masking all but the intersecting fields in the group; and

building the at least one data structure for the group based on the new defined group BMR.

6. An apparatus comprising:

a memory;

one or more processors coupled to the memory, the one or more processors configured to:

for each BMR of the plurality of BMRs:

identify at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields to be masked;

build at least one data structure used to traverse a plurality of rules based on the identified at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields to be masked; and

create a new rule set from the plurality of rules, wherein the identified at least one of or a combination of: i) the at least a portion of a field of the plurality of rules and ii) the subset of fields of the plurality of fields to be masked is masked from the new rule set.

7. The apparatus of claim 6 wherein the one or more processors are further configured to:

map the new rule set to a corresponding data structure traversable on a plurality of rules only on the identified at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields to be masked.

8. The apparatus of claim 6 wherein the one or more processors are further configured to:

for each BMR of the plurality of BMRs, map the at least one data structure to a rules set, wherein the rule set is an n-tuple rule set and includes each field of the n-tuple rule set.

9. The apparatus of claim 8 wherein the one or more processors are further configured to:

enable a search processor to mask the identified at least one of or a combination of: i) the at least a portion of a field of the plurality of rules and ii) the subset of fields of the plurality of fields to be masked from the rules set based on information identifying a corresponding BMR associated with the at least one data structure.

10. The apparatus of claim 6 wherein the one or more processors is further configured to:

identify a set of BMRs of the plurality of BMRs with intersecting fields;

group the identified set of BMRs into a group;

define a group BMR masking all but the intersecting fields in the group; and

build the at least one data structure for the group based on the new defined group BMR.

11. An apparatus comprising:

a memory;

one or more processors coupled to the memory, the one or more processors configured to:

for each BMR of a plurality of BMRs:

build at least one decision tree used to traverse a plurality of rules,

create a new rule set from the plurality of rules, and

wherein each BMR masks at least at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields.

12. The apparatus of claim 11 wherein the one or more processors are further configured to:

map the new rule set to a corresponding decision tree traversable on a plurality of rules only on the identified at least one of or a combination of: i) at least a portion of a field of a plurality of rules and ii) a subset of fields of the plurality of fields.

13. The apparatus of claim 11 wherein the one or more processors are further configured to:

for each BMR of the plurality of BMRs, map the at least one decision tree to a rules set, wherein the rule set is an n-tuple rule set and includes each field of the n-tuple rule set.

14. The apparatus of claim 13 wherein the one or more processors are further configured to:

enable a search processor to mask the identified at least one of or a combination of: i) the at least a portion of a field of the plurality of rules and ii) the subset of fields of the plurality of fields to be masked from the rules set based on information identifying a corresponding BMR associated with the at least one decision tree.

15. The apparatus of claim 11 wherein the one or more processors is further configured to:

identify a set of BMRs of the plurality of BMRs with intersecting fields;

group the identified set of BMRs into a group;

define a group BMR masking all but the intersecting fields in the group; and

build the at least one decision tree for the group based on the new defined group BMR.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CONVERSION Recorded Oct 6, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047202/0690 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2014
From: GOYAL, RAJAN; BULLIS, KENNETH
To: CAVIUM, INC.
Reel/Frame 032877/0582 →