US2017052827A1PendingUtilityA1

Using Multiple Central Processing Unit Cores for Packet Forwarding in Virtualized Networks

Assignee: VARMOUR NETWORKS INCPriority: Aug 17, 2015Filed: Aug 31, 2016Published: Feb 23, 2017
Est. expiryAug 17, 2035(~9.1 yrs left)· nominal 20-yr term from priority
G06F 9/5083G06F 9/45558H04L 67/1097G06F 2009/45591G06F 2009/45579
51
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Systems and methods for using a plurality of processing cores for packet processing in a virtualized network environment are described herein. An example system can comprise a scheduler operable to initiate a processing core of the plurality of processing cores. The processing core is operable to process a plurality of data packets. Based on the determination that the processing core exceeds a threshold processing capacity associated with the processing core, the scheduler sequentially initiates at least one subsequent processing core. The at least one subsequent processing core has a corresponding threshold processing capacity and is operable to process data packets of the plurality of data packets in excess of threshold processing capacities associated with preceding processing cores. Thus, the threshold processing capacities associated with the preceding processing cores are not exceeded.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system for using a plurality of processing cores for packet processing in a virtualized network environment, the system comprising:
 a computer-implemented scheduler operable to:
 initiate a first processing core of the plurality of processing cores such that the first processing core is operable to process a first plurality of data packets; 
 receive a first data packet; 
 determine that the first processing core exceeds a first threshold processing capacity associated with the first processing core; 
 based on the determining, initiate a subsequent processing core such that the subsequent processing core is operable to process data packets of the first plurality of data packets in excess of the first threshold processing capacity, the subsequent processing core having a second threshold processing capacity; and 
 forward the first data packet to the subsequent processing core. 
   
     
     
         2 . The system of  claim 1 , wherein the computer-implemented schedule is further operable to:
 receive a second data packet;   determine that a last initiated processing core exceeds a last initiated threshold processing capacity associated with the last initiated processing core;   based on the determining, initiate a further subsequent processing core such that the further subsequent processing core is operable to process data packets of the first plurality of data packets in excess of the last initiated threshold processing capacity, the further subsequent processing core having a third threshold processing capacity; and   forward the second data packet to the further subsequent processing core.   
     
     
         3 . The system of  claim 1 , wherein the computer-implemented scheduler is further operable to:
 receive a second data packet;   ascertain that the first processing core is below the first threshold processing capacity;   based on the ascertaining, re-initiate a last initiated processing core such that the last initiated processing core is operable to process a second plurality of data packets; and   forward the second data packet to the first processing core.   
     
     
         4 . The system of  claim 3 , wherein the first plurality of data packets is associated with a first virtual machine and the second plurality of data packets is associated with a second virtual machine. 
     
     
         5 . The system of  claim 1 , wherein the computer-implemented scheduler is further operable to:
 determine a number of data packets forwarded by the subsequent processing core per unit of time with respect to processing capacities; and   determine a current workload of the subsequent processing core based on the determination of the number of data packets forwarded, wherein the subsequent processing core has a processing capacity.   
     
     
         6 . The system of  claim 1 , wherein the first threshold processing capacity constitutes a predetermined portion of a total capacity of the first processing core. 
     
     
         7 . The system of  claim 1 , wherein the data packets sent to the processing core and the subsequent processing core are placed into a plurality of packet queues, wherein the first processing core is associated with a first packet queue and the subsequent processing core is associated with a second packet queue, the first data packet being forwarded to the first packet queue associated with the first processing core. 
     
     
         8 . The system of  claim 7 , wherein the scheduler is further operable to monitor a number of data packets in the each of the first and the second packet queues. 
     
     
         9 . The system of  claim 8 , wherein the scheduler is further operable to:
 ascertain that a number of data packets in the first packet queue associated with the first processing core is less than a number of data packets placed into the first packet queue per a unit of time, wherein the determining that the first processing core exceeds the first threshold processing capacity is based on the ascertaining.   
     
     
         10 . The system of  claim 7 , wherein the first processing core is operable to pull the data packets from the first packet queue and the subsequent processing core is operable to pull the data packets from of the second packet queue. 
     
     
         11 . A method for using a plurality of processing cores for packet processing in a virtualized network environment, the method comprising:
 initiating a first processing core of the plurality of processing cores, such that the first processing core is operable to process a first plurality of data packets;   receiving a first data packet;   determining that the first processing core exceeds a first threshold processing capacity associated with the first processing core;   based on the determining, initiating a subsequent processing core such that the subsequent processing core is operable to process data packets of the first plurality of data packets in excess of the first threshold processing capacity, the subsequent processing core having a second threshold processing capacity; and   forwarding the first data packet to the subsequent processing core.   
     
     
         12 . The method of  claim 11 , further comprising:
 receiving a second data packet;   determining that a last initiated processing core exceeds a last initiated threshold processing capacity associated with the last initiated processing core;   based on the determining, initiating a further subsequent processing core such that the further subsequent processing core is operable to process data packets of the first plurality of data packets in excess of the last initiated threshold processing capacity, the further subsequent processing core having a third threshold processing capacity; and   forwarding the second data packet to the further subsequent processing core.   
     
     
         13 . The method of  claim 11 , further comprising:
 receiving a second data packet;   ascertaining that the first processing core is below the first threshold processing capacity;   based on the ascertaining, re-initiating a last initiated processing core such that the last initiated processing core is operable to process a second plurality of data packets; and   forwarding the second data packet to the first processing core.   
     
     
         14 . The method of  claim 13 , wherein the first plurality of data packets is associated with a first virtual machine and the second plurality of data packets is associated with a second virtual machine. 
     
     
         15 . The method of  claim 11 , further comprising:
 determining a number of data packets forwarded by the subsequent processing core per unit of time with respect to processing capacities; and   determining a current workload of the subsequent processing core based on the determination of the number of data packets forwarded, wherein the subsequent processing core has a processing capacity.   
     
     
         16 . The method of  claim 15 , wherein the first threshold processing capacity constitutes a predetermined portion of a total capacity of the first processing core. 
     
     
         17 . The method of  claim 11 , wherein the data packets sent to the processing core and the subsequent processing core are placed into a plurality of packet queues, wherein the first packet queue is associated with the first processing core and the second packet queue is associated with the second processing core; the first data packet being forwarded to the first packet queue associated with the first processing core. 
     
     
         18 . The method of  claim 17 , further comprising:
 monitoring a number of data packets in the each of the first and second packet queues.   
     
     
         19 . The method of  claim 18 , further comprising:
 ascertaining that a number of the data packets in the first packet queue associated with the first processing core decreases for a lesser number of data packets than a number of data packets placed into the first packet queue per a unit of time, wherein the determining that the first processing core exceeds the first threshold processing capacity is based on the ascertaining.   
     
     
         20 . A non-transitory computer readable storage medium having a program embodied thereon, the program being executable by a processor to perform a method for packet processing in a virtualized network environment, the method comprising:
 initiating a first processing core of the plurality of processing cores such that the first processing core is operable to process a first plurality of data packets;   receiving a first data packet;   determining that the first processing core exceeds a first threshold processing capacity associated with the first processing core;   based on the determining, initiating a subsequent processing core such that the subsequent processing core is operable to process data packets of the first plurality of data packets in excess of the first threshold processing capacity, the subsequent processing core having a second threshold processing capacity; and   forwarding the first data packet to the subsequent processing core.

Join the waitlist — get patent alerts

Track US2017052827A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.