IP Library Granted Patent US 9,535,773
Granted Patent B2
US 9,535,773 · App. 14/818,218 · Granted Jan 3, 2017

Packet processing on a multi-core processor

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,535,773
App. No.
14/818,218
Granted
Jan 3, 2017
Kind
B2
Abstract

A method for packet processing on a multi-core processor. According to one embodiment of the invention, a first set of one or more processing cores are configured to include the capability to process packets belonging to a first set of one or more packet types, and a second set of one or more processing cores are configured to include the capability to process packets belonging to a second set of one or more packet types, where the second set of packet types is a subset of the first set of packet types. Packets belonging to the first set of packet types are processed at a processing core of either the first or second set of processing cores. Packets belonging to the second set of packet types are processed at a processing core of the first set of processing cores.

Claims (63)

1. A method for packet processing on a multiprocessor system, the method comprising:

receiving a first packet;

receiving a second packet;

identifying that the first packet belongs to a first flow of packets of a plurality of flows of packets;

identifying that the second packet belongs to a second flow of packets of the plurality of flows of packets;

assigning the first packet to be processed at a first set of one or more processors of the multiprocessor system; and

assigning the second packet to be processed at a second set of one or more processors of the multiprocessor system, wherein:

the first packet is processed at the first set of one or more processors,

the second packet is locked by a processor at the second set of one or more processors,

at least a portion of the second packet is processed before the second packet is locked,

the processed portion of the second packet is associated with a processing phase of the second packet, and

the processing of the second packet continues after the second packet has been unlocked.

2. The method of claim 1 , further comprising identifying that the lock on the second packet has been unlocked, wherein the processing of the second packet continues at the second set of one or more processors after the lock on the second packet is unlocked.

3. The method of claim 1 , further comprising:

receiving an initial packet prior to receiving the second packet;

identifying that the initial packet belongs to the second flow of packets; and

assigning the initial packet to be processed at the second set of processors, wherein at least a portion of the initial packet is processed at the second set of one or more processors, and the processing of the at least portion of the initial packet locks the second packet.

4. The method of claim 1 , wherein the first packet flow or the second packet flow is associated with at least one of a source Internet Protocol (IP) address, a particular source port, a particular destination port, and a particular protocol.

5. The method of claim 1 , further comprising storing the second packet after the second packet has been locked and until the second packet is unlocked.

6. The method of claim 5 , wherein:

the second packet is stored in a de-schedule queue; and

the second packet is sent to the second set of one or more processors for the continued processing after the second packet is unlocked.

7. A non-transitory computer readable storage medium having embodied thereon a program executable by a processor to perform a method for packet processing on a multiprocessor system, the method comprising:

receiving a first packet;

receiving a second packet;

identifying that the first packet belongs to a first flow of packets of a plurality of flows of packets;

identifying that the second packet belongs to a second flow of packets of the plurality of flows of packets;

assigning the first packet to be processed at a first set of one or more processors of the multiprocessor system; and

assigning the second packet to be processed at a second set of one or more processors of the multiprocessor system, wherein:

the first packet is processed at the first set of one or more processors, and

the second packet is locked by a processor at the second set of one or more processors, wherein:

at least a portion of the second packet is processed before the second packet is locked;

the processed portion of the second packet is associated with a processing phase of the second packet, and

the processing of the second packet continues after the second packet has been unlocked.

8. The non-transitory computer readable storage medium of claim 7 , the program further executable to identify that the lock on the second packet has been unlocked, wherein the processing of the second packet continues at the second set of one or more processors after the lock on the second packet is unlocked.

9. The non-transitory computer readable storage medium of claim 7 , the processor is further executable to:

receive an initial packet prior to receiving the second packet;

identify that the initial packet belongs to the second flow of packets; and

assign the initial packet to be processed at the second set of processors, wherein at least a portion of the initial packet is processed at the second set of one or more processors, and the processing of the at least portion of the initial packet locks the second packet.

10. The non-transitory computer readable storage medium of claim 7 , wherein the first packet flow or the second packet flow is associated with at least one of a source Internet Protocol (IP) address, a particular source port, a particular destination port, and a particular protocol.

11. The non-transitory computer readable storage medium of claim 7 , the program further executable to store the second packet after the second packet has been locked and until the second packet is unlocked.

12. The non-transitory computer readable storage medium of claim 11 , wherein:

the second packet is stored in a de-schedule queue; and

the packet is sent to the second set of one or more processors for the continued processing after the second packet is unlocked.

13. An apparatus that performs a method for packet processing, the apparatus comprising:

a network interface, wherein a first packet and a second packet are received over the network interface;

a memory; and

a processor executing instructions out of the memory, wherein the processor is coupled to a first set and a second set of one or more processors, and the processor:

identifies that the first packet belongs to a first flow of packets of a plurality of flows of packets;

identifies that the second packet belongs to a second flow of packets of the plurality of flows of packets;

assigns the first packet to be processed at the first set of one or more processors of the multiprocessor system; and

assigns the second packet to be processed at the second set of one or more processors, wherein:

the first packet is processed at the first set of one or more processors,

the second packet is locked by a processor at the second set of one or more processors,

at least a portion of the second packet is processed before the second packet is locked,

the processed portion of the second packet is associated with a processing phase of the second packet, and

the processing of the second packet continues after the second packet has been unlocked.

14. The apparatus of claim 13 , wherein the processor identifies that the lock on the second packet has been unlocked and the processing of the second packet continues at the second set of one or more processors after the lock on the second packet is unlocked.

15. The apparatus of claim 13 , wherein the network interface receives an initial packet prior to receiving the second packet, and the processor:

identifies that the initial packet belongs to the second flow of packets, and

assigns the initial packet to be processed at the second set of processors, wherein at least a portion of the initial packet is processed at the second set of one or more processors, and the processing of the at least portion of the initial packet locks the second packet.

16. The apparatus of claim 13 , wherein the first packet flow or the second packet flow is associated with at least one of a source Internet Protocol (IP) address, a particular source port, a particular destination port, and a particular protocol.

17. The apparatus of claim 13 , wherein the second packet is stored in the memory after the second packet is locked and until the second packet is unlocked.

Assignments (21)
FIRST LIEN IP SUPPLEMENT Recorded Jun 30, 2025
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 071777/0641 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT RF 046321/0393 Recorded Jun 16, 2025
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: SONICWALL US HOLDINGS INC.
Reel/Frame 071625/0887 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0393 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0414 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Apr 30, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046040/0277 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 041073 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY ASSIGNMENT.. Recorded Apr 5, 2017
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 042168/0114 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 23, 2017
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS, INC.
Reel/Frame 041073/0001 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 5TH INVENTOR'S NAME PREVIOUSLY RECORDED AT REEL: 036461 FRAME: 0252. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 7, 2016
From: GMUENDER, JOHN E.; HARUTYUNOV, IOSIF; MINKIN, ILYA; NGUYEN, HUY MINH; MATHUR, MANISH
To: SONICWALL, INC.
Reel/Frame 039414/0211 →
CONVERSION AND NAME CHANGE Recorded Aug 31, 2015
From: SONICWALL, INC.
To: SONICWALL L.L.C.
Reel/Frame 036515/0024 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2015
From: GMUENDER, JOHN E.; HARUTYUNOV, IOSIF; MARTHUR, MANISH; MINKIN, ILYA; NGUYEN, HUY MINH
To: SONICWALL, INC.
Reel/Frame 036461/0252 →
MERGER Recorded Aug 31, 2015
From: SONICWALL, INC.
To: PSM MERGER SUB (DELAWARE), INC. C/O THOMA BRAVO, LLC
Reel/Frame 036461/0395 →
CHANGE OF NAME Recorded Aug 31, 2015
From: PSM MERGER SUB (DELAWARE), INC.
To: SONICWALL, INC.
Reel/Frame 036461/0434 →
MERGER Recorded Aug 31, 2015
From: SONICWALL L.L.C.
To: DELL SOFTWARE INC.
Reel/Frame 036461/0506 →