IP Library Granted Patent US 9,467,382
Granted Patent B2
US 9,467,382 · App. 14/170,750 · Granted Oct 11, 2016

Elastic service chains

Inventors: Surendra Kumar (San Ramon, CA); David Chang (Milpitas, CA); Nagaraj Bagepalli (Fremont, CA); Abhijit Patra (Saratoga, CA)
Assignee: Cisco Technology, Inc.
H04L47/125H04L47/782H04L41/50H04L45/38H04L63/20
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,467,382
App. No.
14/170,750
Granted
Oct 11, 2016
Kind
B2
Abstract

Presented herein are elastic service chain techniques. In one example, a network element receives data traffic to be processed by a service chain that specifies an ordered sequence of service pools including a first service pool and second service pool, wherein each service pool comprises a plurality of network services. A network service is determined from the first service pool to be applied to the data traffic, and data traffic is forwarded to the network service in the first service pool.

Claims (54)

1. A method comprising:

receiving, at a network element, data traffic to be processed by a service chain that specifies an ordered sequence of service pools including a first service pool and second service pool, wherein each service pool comprises a plurality of network services;

determining that the first service pool has a capacity different than a capacity of the second service pool, wherein capacity of a given service pool is based on an accumulation of capacities of the plurality of network services in the given service pool;

associating dynamically instantiated network services with the first service pool or removing network services from the first service pool until the capacity of the first service pool is substantially equal to the capacity of the second service pool;

determining a network service from the first service pool to be applied to the data traffic; and

forwarding the data traffic to the network service in the first service pool.

2. The method of claim 1 , further comprising, after the network service in the first service pool is applied to the data traffic, forwarding the data traffic to a network service in the second service pool.

3. The method of claim 1 , wherein each service pool in the service chain includes a plurality of similar function network services.

4. The method of claim 1 , further comprising computing the capacity of each of the plurality of network services from one or more of total data traffic throughput, total number of connections, and connection rate.

5. The method of claim 1 , further comprising:

determining that the capacity of the first service pool associated with the service chain is below a predetermined capacity requirement; and

associating dynamically instantiated network services with the first service pool until the capacity of the first service pool meets or exceeds the predetermined capacity requirement.

6. The method of claim 1 , comprising:

determining that the capacity of the first service pool associated with the service chain is above a predetermined capacity requirement; and

removing network services from the first service pool until the capacity of the first service pool is substantially equal to the predetermined capacity requirement.

7. The method of claim 1 , wherein determining the network service from the first service pool comprises selecting the network service according to a load balancing algorithm applied to the first service pool.

8. The method of claim 1 , further comprising:

in response to detecting that performance metrics for the network service in the first service pool have changed with respect to a predetermined threshold, removing the network service from the first service pool or adding a new network service to the first service pool.

9. An apparatus comprising:

a plurality of network ports;

a network processor unit coupled to the plurality of network ports;

a processor coupled to the network processor unit, and configured to:

receive, at a network element, data traffic to be processed by a service chain that specifies an ordered sequence of service pools including a first service pool and second service pool, wherein each service pool comprises a plurality of network services;

determine that the first service pool has a capacity different than a capacity of the second service pool, wherein capacity of a given service pool is based on an accumulation of capacities of the plurality of network services in the given service pool;

associate dynamically instantiated network services with the first service pool or remove network services from the first service pool until the capacity of the first service pool is substantially equal to the capacity of the second service pool;

determine a network service from the first service pool to be applied to the data traffic; and

forward the data traffic to the network service in the first service pool.

10. The apparatus of claim 9 , wherein the processor is further configured to, after the network service in the first service pool is applied to the data traffic, forward the data traffic to a network service in the second service pool.

11. The apparatus of claim 9 , wherein the processor is further configured to:

determine that the capacity of the first service pool associated with the service chain is below a predetermined capacity requirement; and

associate dynamically instantiated network services with the first service pool until the capacity of the first service pool meets or exceeds the predetermined capacity requirement.

12. The apparatus of claim 9 , wherein the processor is further configured to:

determine that the capacity of the first service pool associated with the service chain is above a predetermined capacity requirement; and

remove network services from the first service pool until the capacity of the first service pool is substantially equal to the predetermined capacity requirement.

13. The apparatus of claim 9 , wherein the processor is further configured to:

in response to detecting that performance metrics for the network service in the first service pool have changed with respect to a predetermined threshold, remove the network service from the first service pool or add a new network service to the first service pool.

14. The apparatus of claim 9 , wherein the processor is further configured to compute the capacity of each of the plurality of network services from one or more of total data traffic throughput, total number of connections, and connection rate.

15. The apparatus of claim 9 , wherein the processor is configured to determine the network service from the first service pool by selecting the network service according to a load balancing algorithm applied to the first service pool.

16. A non-transitory computer-readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to:

receive, at a network element, data traffic to be processed by a service chain that specifies an ordered sequence of service pools including a first service pool and second service pool, wherein each service pool comprises a plurality of network services;

determine that the first service pool has a capacity different than a capacity of the second service pool, wherein capacity of a given service pool is based on an accumulation of capacities of the plurality of network services in the given service pool;

associate dynamically instantiated network services with the first service pool or remove network services from the first service pool until the capacity of the first service pool is substantially equal to the capacity of the second service pool;

determine a network service from the first service pool to be applied to the data traffic; and

forward the data traffic to the network service in the first service pool.

17. The computer-readable storage media of claim 16 , further comprising instructions operable to compute the capacity of each of the plurality of network services from one or more of total data traffic throughput, total number of connections, and connection rate.

18. The computer-readable storage media of claim 17 , wherein the instructions are further configured to, after the network service in the first service pool is applied to the data traffic, forward the data traffic to a network service in the second service pool.

19. The computer-readable storage media of claim 17 , further comprising instructions operable to:

determine that the capacity of the first service pool associated with the service chain is below a predetermined capacity requirement; and

associate dynamically instantiated network services with the first service pool until the capacity of the first service pool meets or exceeds the predetermined capacity requirement.

20. The computer-readable storage media of claim 17 , further comprising instructions operable to:

determine that the capacity of the first service pool associated with the service chain is above a predetermined capacity requirement; and

remove network services from the first service pool until the capacity of the first service pool is substantially equal to the predetermined capacity requirement.

21. The computer-readable storage media of claim 17 , further comprising instructions operable to:

in response to detecting that performance metrics for the network service in the first service pool have changed with respect to a predetermined threshold, remove the network service from the first service pool or add a new network service to the first service pool.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2014
From: KUMAR, SURENDRA; CHANG, DAVID; BAGEPALLI, NAGARAJ; PATRA, ABHIJIT
To: CISCO TECHNOLOGY, INC.
Reel/Frame 032118/0385 →
Continuity (1)
Related Publication 20150222640A1 · Aug 6, 2015