IP Library Granted Patent US 11,582,167
Granted Patent B2
US 11,582,167 · App. 17/498,440 · Granted Feb 14, 2023

Parallel data processing for service function chains spanning multiple servers

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
H04L49/208G06F9/45558H04L41/0806H04L41/12H04L45/64H04L49/70G06F2009/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 11,582,167
App. No.
17/498,440
Granted
Feb 14, 2023
Kind
B2
Abstract

Systems, computer-readable media, and methods are disclosed for parallel data processing for service function chains with network functions spanning multiple servers. An example system includes a first server hosting a first network function of a service function chain, a second server hosting a second network function of the service function chain, a mirror function deployed in a first switch to replicate a plurality of packets received by the system and to send respective copies of the plurality of packets to the first network function and to at least one of the second network function and a third network function of the service function chain, and a merge function deployed in a second switch to merge respective outputs of the first network function and the at least one of the second network function and the third network function.

Claims (36)

1. A method comprising:

obtaining, via a processor, a target service function chain spanning multiple servers of a network function virtualization infrastructure, wherein the target service function chain comprises a plurality of network functions to be executed on a plurality of packets in a defined sequence, and wherein at least a first network function and a second network function of the plurality of network functions are capable of being executed in a parallel manner;

generating, via the processor, a plurality of candidate service function chains that utilize an available plurality of network function instances to execute the plurality of network functions in the defined sequence, wherein the generating comprises extracting a plurality of common network function subsets shared by the target service function chain and the available plurality of network function instances running on each server of a plurality of servers of the network function virtualization infrastructure, wherein the extracting produces a plurality of segments of the target service function chain, and wherein a segment of the plurality of segments of the target service function chain comprises a sequence of the plurality of network functions that represents less than all of the plurality of network functions; and

selecting, via the processor from among the plurality of candidate service function chains, a first candidate service function chain to function as the target service function chain.

2. The method of claim 1 , wherein the extracting is performed using a longest common string algorithm.

3. The method of claim 1 , wherein the first candidate service function chain minimizes a number of servers traversed relative to other candidate service function chains of the plurality of candidate service function chains.

4. The method of claim 3 , wherein the number of servers traversed includes a first server that hosts instances of both the first network function and the second network function.

5. The method of claim 1 , further comprising:

deploying the target service function chain in accordance with the first candidate service function chain.

6. The method of claim 5 , wherein the deploying comprises:

pushing a packet forwarding rule to a server included in the first candidate service function chain.

7. The method of claim 1 , wherein the first network function and the second network function are hosted on a common server of the plurality of servers of the network function virtualization infrastructure.

8. The method of claim 1 , wherein the first network function and the second network function are hosted on different servers of the plurality of servers of the network function virtualization infrastructure.

9. The method of claim 1 , further comprising:

repeating the generating and the selecting for the target service function chain upon a change in a topology of the network function virtualization infrastructure.

10. A non-transitory computer-readable medium storing instructions which, when executed by a processing system including at least one processor deployed in a network function virtualization infrastructure, cause the processing system to perform operations, the operations comprising:

obtaining a target service function chain spanning multiple servers of the network function virtualization infrastructure, wherein the target service function chain comprises a plurality of network functions to be executed on a plurality of packets in a defined sequence, and wherein at least a first network function and a second network function of the plurality of network functions are capable of being executed in a parallel manner;

generating a plurality of candidate service function chains that utilize an available plurality of network function instances to execute the plurality of network functions in the defined sequence, wherein the generating comprises extracting a plurality of common network function subsets shared by the target service function chain and the available plurality of network function instances running on each server of a plurality of servers of the network function virtualization infrastructure, wherein the extracting produces a plurality of segments of the target service function chain, and wherein a segment of the plurality of segments of the target service function chain comprises a sequence of the plurality of network functions that represents less than all of the plurality of network functions; and

selecting, from among the plurality of candidate service function chains, a first candidate service function chain to function as the target service function chain.

11. The non-transitory computer-readable medium of claim 10 , wherein the extracting is performed using a longest common string algorithm.

12. The non-transitory computer-readable medium of claim 10 , wherein the first candidate service function chain minimizes a number of servers traversed relative to other candidate service function chains of the plurality of candidate service function chains.

13. The non-transitory computer-readable medium of claim 12 , wherein the number of servers traversed includes a first server that hosts instances of both the first network function and the second network function.

14. The non-transitory computer-readable medium of claim 10 , the operations further comprising:

deploying the target service function chain in accordance with the first candidate service function chain.

15. The non-transitory computer-readable medium of claim 14 , wherein the deploying comprises:

pushing a packet forwarding rule to a server included in the first candidate service function chain.

16. The non-transitory computer-readable medium of claim 10 , wherein the first network function and the second network function are hosted on a common server of the plurality of servers of the network function virtualization infrastructure.

17. The non-transitory computer-readable medium of claim 10 , wherein the first network function and the second network function are hosted on different servers of the plurality of servers of the network function virtualization infrastructure.

18. An apparatus comprising:

a processing system including at least one processor; and

a non-transitory computer-readable medium storing instructions which, when executed by the processing system when deployed in a network function virtualization infrastructure, cause the processing system to perform operations, the operations comprising:

obtaining a target service function chain spanning multiple servers of the network function virtualization infrastructure, wherein the target service function chain comprises a plurality of network functions to be executed on a plurality of packets in a defined sequence, and wherein at least a first network function and a second network function of the plurality of network functions are capable of being executed in a parallel manner;

generating a plurality of candidate service function chains that utilize an available plurality of network function instances to execute the plurality of network functions in the defined sequence, wherein the generating comprises extracting a plurality of common network function subsets shared by the target service function chain and the available plurality of network function instances running on each server of a plurality of servers of the network function virtualization infrastructure, wherein the extracting produces a plurality of segments of the target service function chain, and wherein a segment of the plurality of segments of the target service function chain comprises a sequence of the plurality of network functions that represents less than all of the plurality of network functions; and

selecting, from among the plurality of candidate service function chains, a first candidate service function chain to function as the target service function chain.

19. The apparatus of claim 18 , wherein the extracting is performed using a longest common string algorithm.

20. The apparatus of claim 18 , wherein the first candidate service function chain minimizes a number of servers traversed relative to other candidate service function chains of the plurality of candidate service function chains.

Assignments (3)
CONFIRMATORY LICENSE Recorded Apr 17, 2025
From: REGENTS OF THE UNIVERSITY OF MINNESOTA TECHNOLOGY COMMERCIALIZATION
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 070880/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2021
From: HAN, BO; GOPALAKRISHNAN, VIJAY; ANWER, MUHAMMAD BILAL
To: AT&T INTELLECTUAL PROPERTY I, L.P.
Reel/Frame 058085/0888 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2021
From: ZHANG, ZHI-LI; ZHANG, YANG
To: REGENTS OF THE UNIVERSITY OF MINNESOTA
Reel/Frame 058087/0728 →
Continuity (2)
Continuation 16220683 · Dec 14, 2018
Related Publication 20220029897A1 · Jan 27, 2022