IP Library Granted Patent US 9,898,356
Granted Patent B2
US 9,898,356 · App. 15/397,363 · Granted Feb 20, 2018

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,898,356
App. No.
15/397,363
Granted
Feb 20, 2018
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 (43)

1. A method for processing packets, the method comprising:

receiving a first packet sent over a communication network;

identifying that at least one processing phase of the first packet corresponds to a control packet type, wherein the at least one processing phase of the first packet is processed at a first processor based on the identification that the at least one processing phase of the first packet corresponds to the control packet type;

receiving a second packet sent over the communication network; and

identifying that at least one processing phase of the second packet does not correspond to the control packet type, wherein the at least one processing phase of the second packet is processed at a second processor that does not include support for processing the control packet type.

2. The method of claim 1 , wherein the first packet was initially received at the second processor and further comprising the second processor:

identifying that the first packet being a control type packet, wherein the second processor does not include the support for processing the control type packet; and

passing the packet to the first processor based on the first processor having a capability of processing the control type packet.

3. The method of claim 1 , wherein the first packet was initially received at the first processor, and wherein the first processor processes the at least first processing phase of the first packet further based on the first processor having a capability for processing the at least one processing phase of the first packet.

4. The method of claim 1 , wherein the first processor is able to process a greater number of types of ingress packet types than the second processor.

5. The method of claim 1 , wherein the first packet is initially received by a work assignment unit, and further comprising assigning the first packet to the first processor based on the first processor having a capability of processing at least the first processing phase of the first packet.

6. The method of claim 1 , further comprising:

identifying that one or more packets are currently stored in a de-schedule queue;

prioritizing the processing of at least one of the packets currently stored in the de-schedule queue over another packet that is stored in an ingress queue; and

processing at least a portion of the at least one packet currently stored in the de-schedule queue based on the prioritization.

7. The method of claim 1 , wherein the at least one processing phase of the second packet is processed at the second processor, and further comprising storing the second packet in a queue after the at least one processing phase of the second packet is processed based on a processing lock on at least a second processing phase of the second packet.

8. A non-transitory computer-readable storage medium having embodied thereon a program executable for performing a method for processing packets, the method comprising:

receiving a first packet;

identifying that at least one processing phase of the first packet corresponds to a control packet type, wherein the at least one processing phase of the first packet is processed at a first processor based on the identification that the at least one processing phase of the first packet corresponds to the control packet type;

receiving a second packet; and

identifying that at least one processing phase of the second packet does not correspond to the control packet type, wherein the at least one processing phase of the second packet is processed at a second processor that does not include support for processing the control packet type.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the first packet was initially received at the second processor, and further comprising instructions executable by the second processor to:

identify that the first packet being a control type packet, wherein the second processor not including the support for processing the control type packet; and

pass the packet to the first processor based on the first processor having a capability of processing the control type packet.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the first packet was initially received at the first processor, and the first processor processes the at least first processing phase of the first packet further based on the first processor having a capability for processing the at least one processing phase of the first packet.

11. The non-transitory computer-readable storage medium of claim 8 , wherein the first processor is able to process a greater number of types of ingress packet types than the second processor.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the first packet is initially received by a work assignment unit, and further comprising instructions executable by the work assignment unit to assign the first packet to the first processor based on the first processor having a capability of processing at least the first processing phase of the first packet.

13. The non-transitory computer-readable storage medium of claim 8 , further comprising instructions executable to:

identify that one or more packets are currently stored in a de-schedule queue;

prioritize the processing of at least one of the packets currently stored in the de-schedule queue over another packet that is stored in an ingress queue; and

process at least a portion of the at least one packet currently stored in the de-schedule queue based on the prioritization.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the at least one processing phase of the second packet is processed at the second processor, and further comprising instructions executable to provide the second packet for storage in a queue after the at least one processing phase of the second packet is processed based on a processing lock on at least a second processing phase of the second packet.

15. A system for processing packets, the system comprising:

a network interface that receives a first packet and a second packet sent over a communication network, wherein the first packet corresponds to a control packet type, and wherein the second packet does not correspond to the control packet type;

a first processor that processes at least one processing phase of the first packet based on an identification that the at least one processing phase of the first packet corresponds to the control packet type; and

a second processor that processes at least one processing phase of the second packet, wherein the second processor does not include support for processing the control packet type.

16. The system of claim 15 , wherein the first packet was initially received at the second processor, and wherein the second processor:

identifies that the first packet being a control type packet, wherein the second processor not including the support for processing the control type packet; and

passes the packet to the first processor based on the first processor having a capability of processing the control type packet.

17. The apparatus of claim 15 , wherein the first processor initially receives the first packet, and wherein the first processor processes the at least first processing phase of the first packet further based on the first processor having a capability for processing the at least one processing phase of the first packet.

18. The system of claim 15 , wherein the first processor is able to process a greater number of types of ingress packet types than the second processor.

19. The system of claim 15 , further comprising a work assignment unit that initially receives the first packet and assigns the first packet to the first processor based on the first processor having a capability of processing at least the first processing phase of the first packet.

20. The system of claim 15 , further comprising a de-schedule queue in buffer memory that stores one or more packets, wherein the processing of at least one packet of the one or more packets currently stored in the de-schedule queue is prioritized over a packet stored in an ingress queue, and wherein at least a portion of the at least one packet of the one or more packets currently stored in the de-schedule queue is processed based on the prioritization.

Assignments (11)
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 →
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 →
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 →
CHANGE OF NAME Recorded Jan 3, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044996/0444 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2018
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 044997/0192 →
CONVERSION AND NAME CHANGE Recorded Aug 10, 2017
From: SONICWALL, INC.
To: SONICWALL L.L.C.
Reel/Frame 043521/0674 →
MERGER Recorded Aug 10, 2017
From: SONICWALL L.L.C.
To: DELL SOFTWARE INC.
Reel/Frame 043264/0316 →
CHANGE OF NAME Recorded Aug 10, 2017
From: PSM MERGER SUB (DELAWARE), INC. C/O THOMA BRAVO, LLC
To: SONICWALL, INC.
Reel/Frame 043264/0195 →
MERGER Recorded Aug 10, 2017
From: SONICWALL, INC.
To: PSM MERGER SUB (DELAWARE), INC. C/O THOMA BRAVO, LLC
Reel/Frame 043264/0139 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2017
From: GMUENDER, JOHN E.; HARUTYUNOV, IOSIF; MINKIN, ILYA; NGUYEN, HUY MINH; MATHUR, MANISH
To: SONICWALL, INC.
Reel/Frame 043264/0091 →