IP Library Granted Patent US 10,153,972
Granted Patent B2
US 10,153,972 · App. 14/622,289 · Granted Dec 11, 2018

Method and apparatus for coding a user defined constant into a key composition rule using variable length command

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 10,153,972
App. No.
14/622,289
Granted
Dec 11, 2018
Kind
B2
Abstract

A method and apparatus are provided for classifying received network frames ( 206 ) by extracting frame header data (e.g., n-tuple) which is combined with a key insert value (e.g., embedded prefix value “OP0 1 , OP0 2 , . . . OP0 OP1 ”) to generate a lookup key ( 216 ), where the key insert value is generated by decoding a key composition rule ( 235 ) to extract a constant value (OP0) and a repeat value (OP1), and then replicating the constant value one or more times specified by the repeat value.

Claims (37)

1. A method for classifying received network frames, comprising:

receiving a frame;

retrieving from memory a first key composition rule comprising a first operand defining a first constant value, a second operand defining a first repeat value, and one or more mask operand values defining a mask and one or more mask offset values from a beginning position in a key insert value for applying the mask;

generating a key insert value from the first key composition rule by:

decoding a user defined constant field extract command in the first key composition rule to extract the first constant value, the first repeat value, and the one or more additional mask operand values,

replicating the first constant value one or more times specified by the first repeat value to generate a first sequence string, and

applying the mask to the first sequence string at any position specified by the one or more mask offset values, thereby generating the key insert value; and

generating a lookup key by combining the key insert value with an n-tuple extracted from the frame.

2. The method of claim 1 , where the key composition rule comprises a mask attribute which may be set to indicate application of one or more mask operands.

3. The method of claim 1 , where generating the key insert value comprises:

decoding a user defined constant field extract command in the first key composition rule to extract the first constant value and the first repeat value; and

replicating the first constant value one or more times specified by the first repeat value to generate the key insert value.

4. The method of claim 1 , where generating the lookup key comprises inserting the key insert value within the lookup key in place of one or more fields.

5. The method of claim 1 , where generating the lookup key comprises inserting the key insert value as a prefix in front of the lookup key.

6. The method of claim 1 , where generating the lookup key comprises inserting the key insert value as a suffix of the lookup key.

7. The method of claim 1 , where generating the key insert value comprises inserting data based on field extract commands decoded from the first key composition rule using pipelined hardware logic.

8. The method of claim 1 , further comprising looking up frame processing instructions from a shared lookup table using the lookup key to access a first subset of entries in the shared lookup table which match the key insert value.

9. The method of claim 1 , where the first key composition rule comprises a user-defined constant field extract command and one or more additional field extract commands, where the user-defined constant field extract command is decoded to generate the key insert value and where the one or more additional field extract commands are decoded to generate the n-tuple for combination with the key insert value to generate the lookup key.

10. A system, comprising:

a network interface configured to receive network communications and to output frames associated with the network communications; and

a key generation engine comprising:

a rule decoder for decoding a user defined constant field extract command in a first key composition rule to extract a first constant value, a first repeat value, and the one or more additional mask operand values; and

a key generator for replicating the first constant value one or more times specified by the first repeat value to generate a first sequence string and applying the mask to the first sequence string at any position specified by the one or more mask offset values, thereby generating the key insert value,

where the key generation engine is configured to receive a first frame from the network interface and to generate a first lookup key based on the first key composition rule comprising a variable length field extract command, a first operand defining the first constant value, a second operand defining the first repeat value, and one or more additional mask operand values defining a mask and one or more mask offset values from a beginning position in the key insert value for applying the mask, where the first key composition rule is decoded by the key generation engine to (1) generate a key insert value from the first and second operands by replicating the first constant value one or more times specified by the first repeat value, and (2) combine the key insert value with an n-tuple extracted from the first frame to generate the first lookup key.

11. The system of claim 10 , where the first key composition rule comprises a user-defined constant field extract command and one or more additional field extract commands, where the user-defined constant field extract command is decoded to generate the key insert value and where the one or more additional field extract commands are decoded to generate an n-tuple for combination with the key insert value to generate the first lookup key.

12. The system of claim 10 , where the key generation engine comprises:

a rule decoder for decoding a user defined constant field extract command in the first key composition rule to extract the first constant value and the first repeat value; and

a key generator for replicating the first constant value one or more times specified by the first repeat value to generate the key insert value.

13. The system of claim 10 , where the key generation engine generates the first lookup key by inserting the key insert value as a prefix in front of the first lookup key.

14. The system of claim 10 , where the key generation engine generates the first lookup key by inserting the key insert value as a suffix of the first lookup key.

15. A device comprising:

a receive interface adapted to receive a frame; and

a key generation engine adapted to retrieve a first key composition rule comprising a variable length field extract command with a first operand defining a first constant value, a second operand defining a first repeat value, and one or more mask operand values defining a mask and one or more mask offset values from a beginning position in a key insert value for applying the mask and to generate a first lookup key by combining a key insert value with an n-tuple extracted from the frame, where the key insert value is generated by:

decoding a user defined constant field extract command in the first key composition rule to extract the first constant value, the first repeat value, and the one or more additional mask operand values,

replicating the first constant value one or more times specified by the first repeat value to generate a first sequence string, and

applying the mask to the first sequence string at any position specified by the one or more mask offset values, thereby generating the key insert.

16. The device of claim 15 , where the first key composition rule further comprises one or more additional mask operand values defining a mask and one or more mask offset values from a beginning position in the key insert value for applying the mask.

Assignments (15)
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 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
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 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0341 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0359 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0974 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0080 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0112 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0095 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2015
From: TREVES, RON; GINZBURG, EVGENI; KATZ, ADI
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 035062/0187 →