IP Library Granted Patent US 10,805,164
Granted Patent B2
US 10,805,164 · App. 16/221,237 · Granted Oct 13, 2020

Controlling parallel data processing for service function chains

Inventors: Bo Han (Bridgewater, NJ); Vijay Gopalakrishnan (Edison, NJ); Muhammad Bilal Anwer (Branchburg, NJ); Zhi-Li Zhang (Eden Prairie, MN); Yang Zhang (Saint Paul, MN)
Assignees: AT&T INTELLECTUAL PROPERTY I, L.P.; REGENTS OF THE UNIVERSITY OF MINNESOTA
H04L41/0893G06F9/45558G06F9/5077H04L45/64H04L61/256G06F2009/45595
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,805,164
App. No.
16/221,237
Granted
Oct 13, 2020
Kind
B2
Abstract

Systems and methods are disclosed for parallelizing service function chains. A method comprises receiving a sequential service function chain comprising a plurality of network functions, receiving a plurality of operations, determining at least two network functions are capable of being parallelized, aggregating operations of the plurality of operations associated with the at least two network functions into a network function segment, determining whether another network function is capable of being parallelized with the network function segment, based on the determining: aggregating an operation associated with the another network function into the network function segment when the another network function is capable of being parallelized with the network function segment, or pushing the network function segment as a completed segment of a hybrid service function chain when the another network function is not capable of being parallelized with the network function segment, and implementing the hybrid service function chain.

Claims (55)

1. A method comprising:

receiving, by a processor, a sequential service function chain comprising a plurality of network functions, wherein the plurality of network functions spans a plurality of servers;

receiving, by the processor, a plurality of operations associated with the plurality of network functions of the sequential service function chain;

determining, by the processor, at least two network functions of the plurality of network functions are capable of being parallelized;

aggregating, by the processor, operations of the plurality of operations associated with the at least two network functions into a network function segment;

determining, by the processor, whether another network function of the plurality of network functions is capable of being parallelized with the network function segment;

based on the determining whether the another network function is capable of being parallelized:

aggregating, by the processor, an operation of the plurality of operations associated with the another network function into the network function segment when the another network function is capable of being parallelized with the network function segment; or

aggregating, by the processor, the network function segment as a completed segment of a hybrid service function chain when the another network function is not capable of being parallelized with the network function segment;

automatically installing, by the processor, at least one first routing rule into each software switch of a plurality of software switches for steering traffic associated with the hybrid service function chain, wherein each software switch of the plurality of software switches runs on one server of the plurality of servers; and

automatically installing, by the processor, at least one second routing rule into at least one hardware switch for steering traffic associated with the hybrid service function chain, wherein the at least one hardware switch cooperates with the plurality of software switches to forward traffic to the plurality of network functions; and

implementing, by the processor, the hybrid service function chain when all of the plurality of network functions of the sequential service function chain have been converted into the hybrid service function chain and when the at least one first routing rule has been installed into the each software switch and when the at least one second routing rule has been installed into the at least one hardware switch.

2. The method of claim 1 , wherein the processor comprises a software defined network processor.

3. The method of claim 1 , wherein the receiving the plurality of operations comprises extracting the plurality of operations from a plurality of files describing features of the plurality of network functions.

4. The method of claim 1 , wherein the plurality of network functions comprises a plurality of virtual network functions.

5. The method of claim 4 , wherein the operations of the at least two network functions of the network function segment are implemented over two service instances.

6. The method of claim 5 , wherein the two service instances are implemented over two separate physical machines.

7. The method of claim 6 , wherein the two separate physical machines comprise two separate servers.

8. The method of claim 1 , wherein the determining the at least two network functions of the plurality of network functions are capable of being parallelized comprises determining that the at least two network functions are independent of each other in the sequential service function chain.

9. A system comprising:

a processor; and

a computer-readable medium storing instructions which, when executed by the processor, cause the processor to perform operations, the operations comprising:

receiving a sequential service function chain comprising a plurality of network functions, wherein the plurality of network functions spans a plurality of servers;

receiving a plurality of operations associated with the plurality of network functions of the sequential service function chain;

determining at least two network functions of the plurality of network functions are capable of being parallelized;

aggregating operations of the plurality of operations associated with the at least two network functions into a network function segment;

determining whether another network function of the plurality of network functions is capable of being parallelized with the network function segment;

based on the determining whether the another network function is capable of being parallelized:

aggregating an operation of the plurality of operations associated with the another network function into the network function segment when the another network function is capable of being parallelized with the network function segment; or

aggregating the network function segment as a completed segment of a hybrid service function chain when the another network function is not capable of being parallelized with the network function segment;

automatically installing at least one first routing rule into each software switch of a plurality of software switches for steering traffic associated with the hybrid service function chain, wherein each software switch of the plurality of software switches runs on one server of the plurality of servers; and

automatically installing at least one second routing rule into at least one hardware switch for steering traffic associated with the hybrid service function chain, wherein the at least one hardware switch cooperates with the plurality of software switches to forward traffic to the plurality of network functions; and

implementing the hybrid service function chain when all of the plurality of network functions of the sequential service function chain have been converted into the hybrid service function chain and when the at least one first routing rule has been installed into the each software switch and when the at least one second routing rule has been installed into the at least one hardware switch.

10. The system of claim 9 , wherein the processor comprises a software defined network processor.

11. The system of claim 9 , wherein the receiving the plurality of operations comprises extracting the plurality of operations from a plurality of files describing features of the plurality of network functions.

12. The system of claim 9 , wherein the plurality of network functions comprises a plurality of virtual network functions.

13. The system of claim 12 , wherein the operations of the at least two network functions of the network function segment are implemented over two service instances.

14. The system of claim 13 , wherein the two service instances are implemented over two separate physical machines.

15. The system of claim 14 , wherein the two separate physical machines comprise two separate servers.

16. The system of claim 9 , wherein the determining the at least two network functions of the plurality of network functions are capable of being parallelized comprises determining that the at least two network functions are independent of each other in the sequential service function chain.

17. A non-transitory computer-readable medium storing instructions which, when executed by a processor, cause the processor to perform operations, the operations comprising:

receiving a sequential service function chain comprising a plurality of network functions, wherein the plurality of network functions spans a plurality of servers;

receiving a plurality of operations associated with the plurality of network functions of the sequential service function chain;

determining at least two network functions of the plurality of network functions are capable of being parallelized;

aggregating operations of the plurality of operations associated with the at least two network functions into a network function segment;

determining whether another network function of the plurality of network functions is capable of being parallelized with the network function segment;

based on the determining whether the another network function is capable of being parallelized:

aggregating an operation of the plurality of operations associated with the another network function into the network function segment when the another network function is capable of being parallelized with the network function segment; or

aggregating the network function segment as a completed segment of a hybrid service function chain when the another network function is not capable of being parallelized with the network function segment;

automatically installing at least one first routing rule into each software switch of a plurality of software switches for steering traffic associated with the hybrid service function chain, wherein each software switch of the plurality of software switches runs on one server of the plurality of servers; and

automatically installing at least one second routing rule into at least one hardware switch for steering traffic associated with the hybrid service function chain, wherein the at least one hardware switch cooperates with the plurality of software switches to forward traffic to the plurality of network functions; and

implementing the hybrid service function chain when all of the plurality of network functions of the sequential service function chain have been converted into the hybrid service function chain and when the at least one first routing rule has been installed into the each software switch and when the at least one second routing rule has been installed into the at least one hardware switch.

18. The non-transitory computer-readable medium of claim 17 , wherein the processor comprises a software defined network processor.

19. The non-transitory computer-readable medium of claim 17 , wherein the receiving the plurality of operations comprises extracting the plurality of operations from a plurality of files describing features of the plurality of network functions.

20. The non-transitory computer-readable medium of claim 17 , wherein the plurality of network functions comprises a plurality of virtual network functions.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2020
From: ZHANG, ZHI-LI; ZHANG, YANG
To: REGENTS OF THE UNIVERSITY OF MINNESOTA
Reel/Frame 053554/0775 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2019
From: HAN, BO; GOPALAKRISHNAN, VIJAY; ANWER, MUHAMMAD BILAL
To: AT&T INTELLECTUAL PROPERTY I, L.P.
Reel/Frame 048748/0512 →
CONFIRMATORY LICENSE Recorded Feb 22, 2019
From: UNIVERSITY OF MINNESOTA
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 048417/0476 →
Continuity (1)
Related Publication 20200195507A1 · Jun 18, 2020