IP Library Granted Patent US 8,462,791
Granted Patent B2
US 8,462,791 · App. 12/936,694 · Granted Jun 11, 2013

Adaptive scheduler for communication systems apparatus, system and method

Inventor: Feng Jiang (Changsha, CN)
Assignee: Nokia Siemens Networks Oy
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,462,791
App. No.
12/936,694
Filed
Dec 27, 2010
Granted
Jun 11, 2013
Kind
B2
Art Unit
2476
USPC
370/394
Abstract

An apparatus, system, and method may include adaptively scheduling packet processing modules by ordering the packet processing modules based on at least one of traffic composition and computational complexity of the packet processing modules. The apparatus, system and method may analyze at least one of traffic composition information derived from at least one packet data stream and computational complexity information pertaining to packet processing modules, determine an ordering of the packet processing modules based on the analyzing, wherein packets are passed through the packet processing modules until the packet meets criteria associated with a packet processing module or the packet has been passed through all of the packet processing modules, and dynamically rearrange the packet processing modules into the determined ordering.

Claims (171)

1. A method, comprising:

analyzing traffic composition information derived from packets in at least one packet data stream and computational complexity information pertaining to packet processing modules that process the packets of the at least one packet data stream;

determining an ordering of packet processing modules based on the analyzing, wherein a packet of the packets in at least one packet data stream passes through the packet processing modules until the packet meets a criteria associated with a packet processing module or the packet has been passed through all of the packet processing modules; and

dynamically rearranging the ordering of the packet processing modules into the determined ordering,

wherein the analyzing comprises determining an average cost (C) of analyzing the packets in the packet data stream, and wherein

D T is a vector denoting the order of the packet processing modules, W is an estimated execution length vector, P is a probability vector denoting respective probabilities that a packet meets the criteria associated with a respective packet processing module and L is a vector denoting an execution length for each packet processing module, and

D T denotes that element

d i =j ,( i,j ε[0 ,n ))

indicates that the i-th packet processing module is scheduled at the j-th position, and

the C is determined by the equation

Min

C

=

i

{

D

T

·

W

(

P

,

L

)

}

.

2. The method of claim 1 , wherein the dynamically rearranging further comprises assigning packet processing modules to module groups, reassigning packet processing modules to different module groups and changing a sequential order of the module groups, wherein each module group comprises one or more packet processing modules.

3. The method of claim 1 , wherein the packet processing modules are arranged to process in parallel, sequentially, or a combination of both.

4. The method of claim 1 , wherein the computational complexity information pertaining to a packet processing module comprises an execution length of the packet processing module in terms of at least one of processing cycles and time.

5. The method of claim 1 , wherein the ordering of the packet processing modules optimizes system performance in terms of overall throughput and delay.

6. The method of claim 1 , wherein the packet processing modules comprise service identification modules that identify services, wherein data for the services is divided into packets that form the at least one packet data stream.

7. The method of claim 1 , wherein the determining of the ordering comprises sorting the packet processing modules in descending order according to an estimated execution length measured in terms of at least one of processing cycles and time.

8. An apparatus, comprising:

an analyzing unit configured to analyze traffic composition information derived from packets in at least one packet data stream and computational complexity information pertaining to packet processing modules that process the packets of the at least one packet data stream;

a determining unit configured to determine an ordering of packet processing modules based on the analyzing by the analyzer, wherein the determining unit is configured to pass a packet of the packets in at least one packet data stream through the packet processing modules until the packet meets a criteria associated with a packet processing module or the determining unit has passed the packet through all of the packet processing modules; and

a rearranging unit configured to dynamically rearrange the packet processing modules into the determined ordering,

wherein the analyzing unit determines an average cost (C) of analyzing the packets in the packet data stream, and wherein

D T is a vector denoting the order of the packet processing modules, W an estimated execution length vector, P is a probability vector denoting respective probabilities that a packet meets the criteria associated with a respective packet processing module and L is a vector denoting an execution length for each packet processing module, and

D T denotes that element

d i =j ,( i,j ε[0 ,n ))

indicates that the i-th packet processing module is scheduled at the j-th position, and

the analyzing unit is configured to determine the average cost C by the equation

Min

C

=

i

{

D

T

·

W

(

P

,

L

)

}

.

9. The apparatus of claim 8 , wherein the rearranging unit is further configured to perform one or more of assigning packet processing modules to module groups, reassigning packet processing modules to different module groups and changing a sequential order of the module groups, wherein each module group comprises one or more packet processing modules.

10. The apparatus of claim 8 , wherein the apparatus is configured to arrange the packet processing modules to process in parallel, sequentially, or a combination of both.

11. The apparatus of claim 8 , wherein the computational complexity information pertaining to a packet processing module comprises an execution length of the packet processing module in terms of at least one of processing cycles and time.

12. The apparatus of claim 8 , wherein the rearranging unit is configured to order the packet processing modules which optimizes system performance in terms of overall throughput and delay.

13. The apparatus of claim 8 , wherein the packet processing modules comprise service identification modules that identify services, wherein data for the services is divided into packets that form the one or more packet data streams.

14. The apparatus of claim 8 , wherein the determining unit is configured to determine the ordering by sorting the packet processing modules in descending order according to an estimated execution length measured in terms of at least one of processing cycles and time.

15. The apparatus of claim 8 , wherein the apparatus is one of a server and router and a switch and wherein the apparatus is located in one of a wireless network and a fixed network.

16. A non-transitory computer-readable medium embodied with a computer program, the program controlling a processor to perform:

analyzing traffic composition information derived from at least one packet data stream and computational complexity information;

determining an execution order of packet processing modules based on the analyzing, wherein packets are passed through the packet processing modules until a given packet meets the criteria associated with a packet processing module or the packet has been passed through all of the packet processing modules; and

dynamically rearranging the order of the packet processing modules into the determined execution order,

wherein the determining of the execution order comprises sorting the packet processing modules in descending order according to an estimated execution length measured in terms of at least one of processing cycles and time, and

scheduling the packet processing modules to process the packets in the at least one packet data stream in the descending order; and

executing the packet processing modules for processing a packet from the packets of the at least one packet data stream until either the packet meets the criteria associated with a packet processing module or no more packet processing modules were executed for the packet.

17. An apparatus, comprising:

analyzing means for analyzing traffic composition information derived from packets in at least one packet data stream and computational complexity information pertaining to packet processing modules;

determining means for determining an ordering of packet processing means based on the analyzing by the analyzing means, wherein the determining means passes a packet in at least one packet data stream through the packet processing means until the packet meets a criteria associated with a packet processing module or the determining means has passed the packet through all of the packet processing modules; and

rearranging means for dynamically rearranging the order of the packet processing means into the determined ordering,

wherein the determining means is configured to determine the ordering by sorting the packet processing modules in descending order according to an estimated execution length measured in terms of at least one of processing cycles and time, and

wherein the apparatus is further configured to:

schedule the packet processing modules to process the packets in the at least one packet data stream in the descending order; and

execute the packet processing modules for processing a packet from the at least one data stream until either the packet meets the criteria associated with a packet processing module or no more packet processing modules were executed for the packet.

18. A method, comprising:

analyzing traffic composition information derived from packets in at least one packet data stream and computational complexity information pertaining to packet processing modules that process the packets of the at least one packet data stream;

determining an ordering of packet processing modules based on the analyzing, wherein a packet of the packets in at least one packet data stream passes through the packet processing modules until the packet meets a criteria associated with a packet processing module or the packet has been passed through all of the packet processing modules; and

dynamically rearranging the ordering of the packet processing modules into the determined ordering,

wherein the determining of the ordering comprises sorting the packet processing modules in descending order according to an estimated execution length measured in terms of at least one of processing cycles and time, and

scheduling the packet processing modules to process the packets in the at least one packet data stream in the descending order; and

executing the packet processing modules for processing a packet from the packets of the at least one packet data stream until either the packet meets the criteria associated with a packet processing module or no more packet processing modules were executed for the packet.

19. An apparatus, comprising:

an analyzing unit configured to analyze traffic composition information derived from packets in at least one packet data stream and computational complexity information pertaining to packet processing modules that process the packets of the at least one packet data stream;

a determining unit configured to determine an ordering of packet processing modules based on the analyzing by the analyzer, wherein the determining unit is configured to pass a packet of the packets in at least one packet data stream through the packet processing modules until the packet meets a criteria associated with a packet processing module or the determining unit has passed the packet through all of the packet processing modules; and

a rearranging unit configured to dynamically rearrange the packet processing modules into the determined ordering,

wherein the determining unit is configured to determine the ordering by sorting the packet processing modules in descending order according to an estimated execution length measured in terms of at least one of processing cycles and time, and

wherein the apparatus is further configured to:

schedule the packet processing modules to process the packets in the at least one packet data stream in the descending order; and

execute the packet processing modules for processing a packet from the at least one data stream until either the packet meets the criteria associated with a packet processing module or no more packet processing modules were executed for the packet.

20. A non-transitory computer-readable medium embodied with a computer program, the program controlling a processor to perform:

analyzing traffic composition information derived from at least one packet data stream and computational complexity information;

determining an execution order of packet processing modules based on the analyzing, wherein packets are passed through the packet processing modules until a given packet meets the criteria associated with a packet processing module or the packet has been passed through all of the packet processing modules; and

dynamically rearranging the order of the packet processing modules into the determined execution order,

wherein the analyzing comprises determining an average cost (C) of analyzing the packets in the packet data stream, and wherein

D T is a vector denoting the order of the packet processing modules, W is an estimated execution length vector, P is a probability vector denoting respective probabilities that a packet meets the criteria associated with a respective packet processing module and L is a vector denoting an execution length for each packet processing module, and

D T denotes that element

d i =j ,( i,j ε[0 ,n ))

indicates that the i-th packet processing module is scheduled at the j-th position, and

the C is determined by the equation

Min

C

=

i

{

D

T

·

W

(

P

,

L

)

}

.

21. An apparatus, comprising:

analyzing means for analyzing traffic composition information derived from packets in at least one packet data stream and computational complexity information pertaining to packet processing modules;

determining means for determining an ordering of packet processing means based on the analyzing by the analyzing means, wherein the determining means passes a packet in at least one packet data stream through the packet processing means until the packet meets a criteria associated with a packet processing module or the determining means has passed the packet through all of the packet processing modules; and

rearranging means for dynamically rearranging the order of the packet processing means into the determined ordering,

wherein the analyzing means determines an average cost (C) of analyzing the packets in the packet data stream, and wherein

D T is a vector denoting the order of the packet processing modules, W is an estimated execution length vector, P is a probability vector denoting respective probabilities that a packet meets the criteria associated with a respective packet processing module and L is a vector denoting an execution length for each packet processing module, and

D T denotes that element

d i =j ,( i,j ε[0 ,n ))

indicates that the i-th packet processing module is scheduled at the j-th position, and

the analyzing unit is configured to determine the average cost C by the equation

Min

C

=

i

{

D

T

·

W

(

P

,

L

)

}

.

Assignments (12)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
PATENT SECURITY AGREEMENT Recorded Apr 22, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063429/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
CHANGE OF NAME Recorded Nov 19, 2014
From: NOKIA SIEMENS NETWORKS OY
To: NOKIA SOLUTIONS AND NETWORKS OY
Reel/Frame 034294/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2010
From: JIANG, FENG
To: NOKIA SIEMENS NETWORKS OY
Reel/Frame 025605/0953 →
Continuity (1)
Related Publication 20110110376A1 · May 12, 2011