IP Library Granted Patent US 8,638,800
Granted Patent B2
US 8,638,800 · App. 12/418,259 · Granted Jan 28, 2014

Technique for generating hash-tuple independent of precedence order of applied rules

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 8,638,800
App. No.
12/418,259
Granted
Jan 28, 2014
Kind
B2
Abstract

Techniques have been developed to facilitate evaluation of match and hash rule entries in ways that allow an implementation to decouple (i) the order in which match rules are applied to a first subset of packet header fields from (ii) the ordering of a second subset of packet header fields over which a non-commutative hash is computed. In short, the set and ordering of fields evaluated in accordance with a precedence order of rules need not correspond to the set or ordering of fields over which a hash is computed in a communications controller.

Claims (62)

1. An apparatus comprising:

a communication controller that, for at least some received information frames, computes a non-commutative hash over an ordered subset of field values from respective headers associated with the received information frames,

wherein the communication controller determines a particular ordered subset of field values for inclusion in the non-commutative hash based on execution of match rules that, for respective information frames, evaluate selected ones of the field values in an order that differs from that of the ordered subset of field values over which the non-commutative hash is computed.

2. The apparatus of claim 1 , further comprising:

plural processing elements configured to operate on content from respective information frames in accord with protocols layered atop those implemented by the communication controller,

the communication controller configured to distribute the content from respective information frames amongst the plural processing elements in accord with the computed non-commutative hashes.

3. The apparatus of claim 2 , wherein

the processing elements configured to receive the content distributed thereto together with respective ones of the non-commutative hashes computed at the communications controller; and

the processing elements configured to use a particular non-commutative hash received together with particular content as an index to retrieve a context for processing the particular content in connection with one or more of the layered atop protocols.

4. The apparatus of claim 3 ,

wherein distribution by the communication controller of hypertext transfer protocol data from a particular one of the information frames to a particular one of the processing elements is based on the computed non-commutative hash and is in accord with a load balance criterion; and

wherein the retrieval of a processing context particular to the hypertext transfer protocol (HTTP) data from the particular information frame is also based on the computed hash and is in accord with a targeted website context identified, at least in part, using the computed hash as a key therefor.

5. The apparatus of claim 3 , wherein the processing context retrieved based on the particular hash is one of:

a web server context HTTP protocol traffic;

a cached L2 or L3 lookup table identified for a packet forwarding application;

a session initiation protocol (SIP) routing table indexed for particular SIP traffic; and

media content indexed for a particular source, wherein the particular hash includes in the hashed over set of field values an addressing field for particular media transfer protocol traffic.

6. The apparatus of claim 1 ,

wherein for at least a first subset of the received information frames, the communications controller computes respective hashes over a first ordered subset of field values; and

wherein for at least a second subset of the received information frames, the communications controller computes respective hashes over a second ordered subset of field values, the first and second subsets of field values being dissimilar in either or both of constituent fields and ordering thereof.

7. The apparatus of claim 6 ,

wherein the first subset of received information frames includes respective Internet Protocol (IP) packet headers that encode an IP_source_address, an IP_destination_address and a transmission control protocol (TCP) protocol and further include data that identify a hypertext transport protocol (HTTP) associated destination_port, and

wherein the first ordered subset of field values over which a respective hash is computed is {IP_source_address, IP_destination_address, protocol, source_port, destination_port}.

8. The apparatus of claim 6 ,

wherein the second subset of received information frames includes respective Internet Protocol (IP) packet headers that encode an IP_source_address, an IP_destination_address, and a internet message control protocol (ICMP) protocol, and

wherein the second ordered subset of field values over which a respective hash is computed is {IP_source_address, IP_destination_address}.

9. The apparatus of claim 1 , wherein the communications controller further includes:

storage for field values parsed from the received information frames;

evaluation logic that evaluates match rules against respective ones of the parsed field values in accordance with an evaluation order; and

hash logic that applies the non-commutative hash based on respective ones of the parsed field values in accordance with a hash order that differs from the evaluation order.

10. The apparatus of claim 9 ,

wherein the evaluation logic and the hash logic are coupled to receive parsed field values from the storage in accord with the respective evaluation and hash orders.

11. The apparatus of claim 9 ,

wherein the evaluation logic includes plural elements that evaluate respective match rules in parallel based on field values retrieved from the storage; and

wherein the hash logic is configured as a hash chain of plural stages, each stage corresponding to one of the evaluation logic elements and coupled to selectively introduce a successive contribution to the non-commutative hash based on a respective one of the parsed field values and on a match result computed at the corresponding evaluation logic elements.

12. A method of processing information frames, the method comprising:

at a communications controller, evaluating in an evaluation order a first subset of field values parsed from a particular one of plural information frames;

based on results of the evaluation, selecting a second subset of the parsed field values and applying a non-commutative hash thereto, wherein the non-commutative hash is applied in a hash order that differs from the evaluation order;

for at least a first subset of the information frames, computing the respective non-commutative hashes over a first ordered subset of field values; and

for at least a second subset of information frames, computing respective non-commutative hashes over a second ordered subset of field values, the first and second subsets of field values being dissimilar with respect to either or both of constituent fields and ordering thereof.

13. The method of claim 12 , further comprising:

storing the parsed field values in storage accessible to both evaluation logic and hash logic of the communications controller.

14. The method of claim 12 , further comprising:

parsing the field values from one or more headers associated with the particular information frame.

15. The method of claim 12 , further comprising:

distributing content from respective information frames, including the particular information frame, amongst plural processing elements, wherein the distribution is in accord with respective non-commutative hashes applied to respective ordered subsets of field values parsed from the respective information frames.

16. The method of claim 15 , further comprising:

at the plural processing elements, operating on content from the respective information frames in accord with protocols layered atop those implemented by the communication controller; and

using the respective non-commutative hashes computed at the communications controller as hash keys to retrieve relevant processing contexts in connection with one or more of the layered atop protocols.

17. A method of processing information frames, the method comprising:

at a communications controller, evaluating in a first order a first subset of field values parsed from a first information frame; and

based on results of the evaluation, selecting a second subset of the parsed field values and applying a non-commutative hash thereto, wherein the non-commutative hash is applied in a second order that differs from the first order, wherein the non-commutative hash is selected from a set that includes:

an ORD-type hash; and

a CRC-type hash.

18. A method of processing information frames, the method comprising:

at a communications controller, parsing headers associated with respective information frames and computing respective non-commutative hashes over respective ordered subsets of field values parsed from the respective headers;

using the non-commutative hashes to distribute the respective information frames amongst plural processing elements in accordance with a load balance criterion, the processing elements operating on content of the distributed information frames in accord with protocols layered atop those implemented by the communication controller;

at each of the plural processing elements, processing respective ones of the information frames distributed thereto; and

for at least some of the distributed information frames, using the non-commutative hashes computed at the communications controller and used to distribute the respective information frames as a hash key to retrieve a processing context relevant to a particular execution instance of the respective layered atop protocol.

19. The method of claim 18 ,

wherein for at least a first subset of the information frames, the respective non-commutative hashes are computed over a first subset of field values, and

wherein for at least a second subset of the information frames, the respective hashes are computed over a second subset of field values, the first and second subsets of field values being dissimilar.

Assignments (25)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2021
From: NXP B.V.
To: FUTURE LINK SYSTEMS, LLC
Reel/Frame 055115/0491 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0823 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →