IP Library Granted Patent US 9,268,855
Granted Patent B2
US 9,268,855 · App. 14/150,550 · Granted Feb 23, 2016

Processing request keys based on a key size supported by underlying processing elements

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,268,855
App. No.
14/150,550
Granted
Feb 23, 2016
Kind
B2
Abstract

A packet classification system, methods, and apparatus are provided for packet classification. A processor of a router coupled to a network processes data packets received from a network. The processor creates a request key using information extracted from a packet. The processor splits the request key into an n number of partial request keys if at least one predetermined criterion is met. The processor also sends a non-final request that includes an i-th partial request key to a corresponding search table of an n number of search tables, wherein i<n. Further, the processor receives a non-final search result from the corresponding search table. The processor sends a final request that includes an n-th partial request key and the non-final search result. The processor receives a final search result from the corresponding search table and processing the packet based on processing data included in the final search result.

Claims (36)

1. A method, executed by one or more processors, for processing a data packet, the method comprising:

receiving the packet;

creating a first request key using information extracted from the packet;

splitting the first request key into an n number of partial request keys if at least one predetermined criterion is met, wherein n>1 and each of the n number of partial request keys is associated with a distinct set of the information extracted from the packet;

sending a non-final request that includes an i-th partial request key to a corresponding search table of an n number of search tables, wherein i<n;

receiving a non-final search result from the corresponding search table;

sending a final request that includes an n-th partial request key and the non-final search result received in response to sending the non-final request to the corresponding search table;

receiving a final search result from the corresponding search table; and

processing the packet based on processing data included in the final search result.

2. The method of claim 1 , wherein the packet includes at least one header and the information is extracted from at least one data field of the at least one header.

3. The method of claim 2 , wherein the distinct set of information is extracted from data stored in a set of data fields corresponding to a subset of the at least one data field of the at least one header contained in the packet.

4. The method of claim 1 , wherein the at least one predetermined criterion is at least one of: a processing capability of a processing system for processing the first request key and a size of the first request key.

5. The method of claim 4 , wherein the size of the first request key is based on a size and number of data fields from which the information is extracted.

6. The method of claim 1 , wherein the corresponding search table is a search table including rules that are modified to be searchable on the set of data fields from which the distinct set of information is extracted from the packet.

7. The method of claim 1 , the non-final request includes an i-th partial request key and the non-final search result received in response to sending an (i−1)th non-final request, wherein 1<i<n.

8. The method of claim 1 , wherein the non-final search result includes a cookie identifying a set of rules in the corresponding search table that matches an i-th partial request key and a next set of the distinct set of information to be matched in a next non-final request, wherein 1<i<n.

9. The method of claim 1 , wherein the final search result identifies a rule that includes instructions used to process the packet.

10. An apparatus for processing a data packet, the apparatus comprising:

a memory; and

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

receive the packet;

create a first request key using information extracted from the packet;

split the first request key into an n number of partial request keys if at least one predetermined criterion is met, wherein n>1 and each of the n number of partial request keys is associated with a distinct set of the information extracted from the packet;

send a non-final request that includes an i-th partial request key to a corresponding search table of an n number of search tables, wherein i<n;

receive a non-final search result from the corresponding search table; and

send a final request that includes an n-th partial request key and the non-final search result received in response to sending the non-final request to the corresponding search table;

receive a final search result from the corresponding search table;

process the packet based on processing data included in the final search result.

11. The apparatus of claim 10 , wherein the packet includes at least one header and the information is extracted from at least one data field of the at least one header.

12. The apparatus of claim 11 , wherein the distinct set of information is extracted from data stored in a set of data fields corresponding to a subset of the at least one data field of the at least one header contained in the packet.

13. The apparatus of claim 10 , wherein the at least one predetermined criterion is at least one of: a processing capability of a processing system for processing the first request key and a size of the first request key.

14. The apparatus of claim 13 , wherein the size of the first request key is based on a size and number of data fields from which the information is extracted.

15. The apparatus of claim 12 , wherein the corresponding search table is a search table including rules that are modified to be searchable on the set of data fields from which the distinct set of information is extracted from the packet.

16. The apparatus of claim 10 , the non-final request includes an i-th partial request key and the non-final search result received in response to sending an (i−1)th non-final request, wherein 1<i<n.

17. The apparatus of claim 10 , wherein the non-final search result includes a cookie identifying a set of rules in the corresponding search table that matches an i-th partial request key and a next set of the distinct set of information to be matched in a next non-final request, wherein 1<i<n.

18. The apparatus of claim 10 , wherein the final search result identifies a rule that includes instructions used to process the packet.

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/0189 →