IP Library › Granted Patent US 9,363,180
Granted Patent B2
US 9,363,180 · App. 14/161,261 · Granted Jun 7, 2016

Service chaining in a cloud environment using Software Defined Networking

Inventors: Ludovic Beliveau (St-Constant, CA); Catherine Truchan (Lorraine, CA); Suresh Krishnan (Johns Creek, GA)
Assignee: TELEFONKATIEBOLAGET L M ERICSSON (PUBL)
H04L45/7453H04L45/38H04L47/24
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,363,180
App. No.
14/161,261
Granted
Jun 7, 2016
Kind
B2
Abstract

A system and method for steering traffic through a set of services is provided. A service path or service chain is assigned to a received packet based on a classification of the packet and correlation of the packet with a traffic flow. A new service chain identifier can be created if no such correlation exists. A next service type and a particular instance of the next service type can be determined in accordance with the service chain identifier. A next destination for the traffic can be set in accordance with the instance of the next service.

Claims (49)

1. A method for steering packet traffic comprising:

receiving a packet on an ingress port;

responsive to determining there is an entry corresponding to the packet stored in a microflow table, correlating the packet with a service chain identifier;

determining a next service type for the packet in accordance with the service chain identifier and the ingress port;

selecting an instance of the next service in accordance with the determined next service type and a load balancing algorithm distributing packet traffic between a plurality of instances of the next service; and

forwarding the packet to the selected instance of the next service.

2. The method of claim 1 , further comprising, responsive to determining that the received packet has an associated service chain tag, removing the service chain tag from the packet.

3. The method of claim 1 , further comprising storing the service chain identifier in metadata associated with the packet.

4. The method of claim 1 , wherein the instance of the next service is selected further in accordance with at least one parameter associated with the packet.

5. The method of claim 1 , wherein the instance of the next service is selected further in accordance with a non-packet parameter.

6. The method of claim 1 , further comprising setting a destination address of the packet in accordance with the selected instance of the next service.

7. The method of claim 1 , further comprising selecting an egress port in accordance with the selected instance of the next service.

8. The method of claim 7 , wherein, responsive to determining that the egress port is a transit port, attaching a service chain tag to the packet.

9. A method for steering packet traffic comprising:

receiving a packet on an ingress port;

responsive to determining there is no entry corresponding to the packet stored in a microflow table, creating a new entry in the microflow table;

correlating the packet with the new entry in the microflow table and a service chain identifier;

determining a next service type for the packet in accordance with the service chain identifier and the ingress port;

selecting an instance of the next service in accordance with the determined next service type; and

forwarding the packet to the selected instance of the next service.

10. The method of claim 9 , further comprising assigning a new service chain identifier to a traffic flow associated with the packet.

11. The method of claim 9 , wherein the instance of the next service is selected in accordance with a load balancing algorithm distributing packet traffic between a plurality of instances of the next service.

12. The method of claim 9 , wherein the instance of the next service is selected in accordance with at least one of a packet parameter or a non-packet parameter.

13. A switch comprising a communication interface, a processor, and a memory, the memory containing instructions executable by the processor whereby the switch is operative to:

receive a packet on an ingress port of the communication interface;

responsive to determining there is an entry corresponding to the packet stored in a microflow table, correlate the packet with a service chain identifier;

determine a next service type for the packet in accordance with the service chain identifier and the ingress port;

select an instance of the next service in accordance with the next service type and a load balancing algorithm distributing packet traffic between a plurality of instances of the next service; and

forward the packet to the selected instance of the next service by the communication interface.

14. The switch of claim 13 , further operative to, responsive to determining that the received packet has an associated service chain tag, remove the service chain tag from the packet.

15. The switch of claim 13 , wherein the instance of the next service is selected further in accordance with at least one parameter associated with the packet.

16. The switch of claim 13 , further operative to select an egress port of the communication interface in accordance with the selected instance of the next service.

17. The switch of claim 16 , further operative to attach a service chain tag to the packet in response to determining that the egress port is a transit port.

18. A switch comprising a communication interface, a processor, and a memory, the memory containing instructions executable by the processor whereby the switch is operative to:

receive a packet on an ingress port of the communication interface;

create a new entry in a microflow table in response to determining there is no entry corresponding to the packet stored in the microflow table;

correlate the packet with the new entry in the microflow table and a service chain identifier;

determine a next service type for the packet in accordance with the service chain identifier and the ingress port;

select an instance of the next service in accordance with the determined next service type; and

forward the packet to the selected instance of the next service.

19. The switch of claim 18 , wherein creating a new entry in the microflow table includes assigning a new service chain identifier to a traffic flow associated with the packet.

20. The switch of claim 18 , wherein the instance of the next service is selected in accordance with a load balancing algorithm distributing packet traffic between a plurality of instances of the next service.

21. The switch of claim 18 , wherein the instance of the next service is selected in accordance with a load balancing algorithm distributing packet traffic between a plurality of instances of the next service.

22. A forwarding element comprising:

an ingress port for receiving a packet;

a microflow table module for correlating the packet with a service chain;

a next service table module for determining a next service type for the packet in accordance with the service chain and the ingress port;

a load balancing table module for selecting an instance of the next service in accordance with the determined next service type and a load balancing algorithm distributing packet traffic between a plurality of instances of the next service; and

an egress port for forwarding the packet towards a destination address associated with the selected instance of the next service.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2014
From: BELIVEAU, LUDOVIC; TRUCHAN, CATHERINE; KRISHNAN, SURESH
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 033425/0692 →
Continuity (2)
Provisional Application 61899687 · Nov 4, 2013
Related Publication 20150124815A1 · May 7, 2015